1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-15 13:05:22 +02:00

Extension point for New Connection wizard delegate and implementation

This commit is contained in:
Kushal Munir 2006-06-28 13:04:29 +00:00
parent 080693364e
commit 5e8dfb9cf8
14 changed files with 1513 additions and 32 deletions

View file

@ -43,7 +43,7 @@ import org.eclipse.rse.ui.validators.ValidatorConnectionName;
import org.eclipse.rse.ui.validators.ValidatorUserId;
import org.eclipse.rse.ui.widgets.InheritableEntryField;
import org.eclipse.rse.ui.wizards.AbstractSystemWizardPage;
import org.eclipse.rse.ui.wizards.SystemNewConnectionWizard;
import org.eclipse.rse.ui.wizards.RSENewConnectionWizard;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionEvent;
@ -892,9 +892,9 @@ public class SystemConnectionForm
IWizardPage[] pages = null;
if (wizard instanceof SystemNewConnectionWizard) {
SystemNewConnectionWizard connWizard = (SystemNewConnectionWizard)wizard;
AbstractSystemWizardPage mainPage = (AbstractSystemWizardPage)(connWizard.getMainPage());
if (wizard instanceof RSENewConnectionWizard) {
RSENewConnectionWizard connWizard = (RSENewConnectionWizard)wizard;
AbstractSystemWizardPage mainPage = (AbstractSystemWizardPage)(connWizard.getStartingPage());
Vector pageList = new Vector();

View file

@ -27,7 +27,7 @@ import org.eclipse.rse.ui.ISystemContextMenuConstants;
import org.eclipse.rse.ui.ISystemIconConstants;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.SystemResources;
import org.eclipse.rse.ui.wizards.SystemNewConnectionWizard;
import org.eclipse.rse.ui.wizards.RSENewConnectionWizard;
import org.eclipse.swt.widgets.Shell;
@ -102,19 +102,19 @@ public class SystemNewConnectionAction extends SystemBaseWizardAction
*/
protected IWizard createWizard()
{
SystemNewConnectionWizard newConnWizard = new SystemNewConnectionWizard();
RSENewConnectionWizard newConnWizard = new RSENewConnectionWizard();
if (!fromPopupMenu && (sp!=null))
{
setSelection(sp.getSelection());
}
newConnWizard.setCurrentlySelectedConnection(currConn);
if (restrictSystemTypesTo != null)
newConnWizard.restrictSystemTypes(restrictSystemTypesTo);
if (defaultHostName != null)
newConnWizard.setHostName(defaultHostName);
if (defaultConnectionName != null)
newConnWizard.setConnectionName(defaultConnectionName);
// newConnWizard.setCurrentlySelectedConnection(currConn);
// if (restrictSystemTypesTo != null)
// newConnWizard.restrictSystemTypes(restrictSystemTypesTo);
// if (defaultHostName != null)
// newConnWizard.setHostName(defaultHostName);
// if (defaultConnectionName != null)
// newConnWizard.setConnectionName(defaultConnectionName);
return newConnWizard;
}

View file

@ -16,6 +16,9 @@
package org.eclipse.rse.ui.wizards;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.rse.core.IRSESystemType;
import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
import org.eclipse.rse.ui.SystemConnectionForm;
import org.eclipse.rse.ui.SystemResources;
@ -98,9 +101,9 @@ public abstract class AbstractSystemNewConnectionWizardPage extends AbstractSyst
/**
* Get the parent wizard typed as the SystemNewConnectionWizard
*/
public SystemNewConnectionWizard getNewConnectionWizard()
public RSENewConnectionWizard getNewConnectionWizard()
{
return (SystemNewConnectionWizard)getWizard();
return (RSENewConnectionWizard)getWizard();
}
/**
@ -108,11 +111,22 @@ public abstract class AbstractSystemNewConnectionWizardPage extends AbstractSyst
*/
public ISystemNewConnectionWizardMainPage getMainPage()
{
SystemNewConnectionWizard ourWizard = getNewConnectionWizard();
if (ourWizard != null)
return ourWizard.getMainPage();
else
RSENewConnectionWizard ourWizard = getNewConnectionWizard();
if (ourWizard != null) {
String[] systemTypes = parentFactory.getSystemTypes();
IRSESystemType systemType = RSECorePlugin.getDefault().getRegistry().getSystemType(systemTypes[0]);
IWizardPage wizardPage = ourWizard.getDelegate(systemType).getMainPage();
if (wizardPage instanceof ISystemNewConnectionWizardMainPage) {
return (ISystemNewConnectionWizardMainPage)wizardPage;
}
else {
return null;
}
}
else {
return null;
}
}
/**
@ -121,11 +135,21 @@ public abstract class AbstractSystemNewConnectionWizardPage extends AbstractSyst
*/
public SystemConnectionForm getMainPageForm()
{
SystemNewConnectionWizard ourWizard = getNewConnectionWizard();
if (ourWizard != null)
return ourWizard.getMainPageForm();
else
return null;
RSENewConnectionWizard ourWizard = getNewConnectionWizard();
if (ourWizard != null) {
String[] systemTypes = parentFactory.getSystemTypes();
IRSESystemType systemType = RSECorePlugin.getDefault().getRegistry().getSystemType(systemTypes[0]);
IWizardPage wizardPage = ourWizard.getDelegate(systemType).getMainPage();
if (wizardPage instanceof RSENewConnectionWizardDefaultDelegateMainPage) {
return ((RSENewConnectionWizardDefaultDelegateMainPage)wizardPage).getForm();
}
else {
return null;
}
}
else {
return null;
}
}
}

View file

@ -289,7 +289,7 @@ public abstract class AbstractSystemWizard
* For explicitly setting output object after wizard is dismissed. Called in the
* wizard's processFinish method, typically.
*/
protected void setOutputObject(Object outputObject)
public void setOutputObject(Object outputObject)
{
output = outputObject;
}
@ -370,7 +370,7 @@ public abstract class AbstractSystemWizard
* page's performFinish returned false. Pass the failing page. If it is not the current
* page, this code will issue msg RSEG1240 "Error on another page" to the user.
*/
protected void setPageError(IWizardPage pageInError)
public void setPageError(IWizardPage pageInError)
{
IWizardPage currentPage = getContainer().getCurrentPage();
if (currentPage != pageInError)

View file

@ -0,0 +1,29 @@
/********************************************************************************
* Copyright (c) 2000, 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/
package org.eclipse.rse.ui.wizards;
import org.eclipse.rse.core.IRSESystemType;
import org.eclipse.ui.INewWizard;
public interface IRSENewConnectionWizard extends INewWizard {
public static final String NEW_CONNECTION_WIZARD_DELEGATE_EXTENSION_POINT_ID = "org.eclipse.rse.ui.newConnectionWizardDelegate";
public IRSENewConnectionWizardDelegate getDelegate(IRSESystemType systemType);
public void setSystemType(IRSESystemType systemType);
}

View file

@ -0,0 +1,47 @@
/********************************************************************************
* Copyright (c) 2000, 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/
package org.eclipse.rse.ui.wizards;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.rse.core.IRSESystemType;
import org.eclipse.rse.model.IHost;
/**
* Interface for RSE new connection wizard delegate.
*/
public interface IRSENewConnectionWizardDelegate {
public void init(RSENewConnectionWizard wizard, IRSESystemType systemType);
public RSENewConnectionWizard getWizard();
public IRSESystemType getSystemType();
public void addPages();
public boolean performFinish();
public boolean canFinish();
public IWizardPage getMainPage();
public IWizardPage getNextPage(IWizardPage page);
public IWizardPage getPreviousPage(IWizardPage page);
public IHost getDummyHost();
}

View file

@ -0,0 +1,532 @@
/********************************************************************************
* Copyright (c) 2000, 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/
package org.eclipse.rse.ui.wizards;
import java.util.Hashtable;
import java.util.Vector;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.rse.core.IRSESystemType;
import org.eclipse.rse.core.SystemBasePlugin;
import org.eclipse.rse.core.SystemPerspectiveHelpers;
import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
import org.eclipse.rse.core.subsystems.util.ISubsystemConfigurationAdapter;
import org.eclipse.rse.model.DummyHost;
import org.eclipse.rse.model.IHost;
import org.eclipse.rse.model.ISystemProfile;
import org.eclipse.rse.model.ISystemRegistry;
import org.eclipse.rse.model.SystemStartHere;
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
import org.eclipse.rse.ui.ISystemPreferencesConstants;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.SystemConnectionForm;
import org.eclipse.rse.ui.SystemResources;
import org.eclipse.rse.ui.messages.SystemMessageDialog;
/**
*
*/
public class RSEDefaultNewConnectionWizardDelegate extends RSENewConnectionWizardDelegate {
private RSENewConnectionWizardDefaultDelegateMainPage mainPage;
private SystemNewConnectionWizardRenameProfilePage rnmProfilePage;
private ISystemNewConnectionWizardPage[] subsystemFactorySuppliedWizardPages;
private Hashtable ssfWizardPagesPerSystemType = new Hashtable();
private String defaultUserId;
private String defaultConnectionName;
private String defaultHostName;
private String[] activeProfileNames = null;
private int privateProfileIndex = -1;
private ISystemProfile privateProfile = null;
private IHost currentlySelectedConnection = null;
private String[] restrictSystemTypesTo;
private static String lastProfile = null;
private boolean showProfilePageInitially = true;
private IHost _dummyHost;
/**
* Constructor.
*/
public RSEDefaultNewConnectionWizardDelegate() {
}
/**
* @see org.eclipse.rse.ui.wizards.RSENewConnectionWizardDelegate#init(org.eclipse.rse.ui.wizards.RSENewConnectionWizard, org.eclipse.rse.core.IRSESystemType)
*/
public void init(RSENewConnectionWizard wizard, IRSESystemType systemType) {
super.init(wizard, systemType);
restrictSystemType(systemType.getName());
activeProfileNames = SystemStartHere.getSystemProfileManager().getActiveSystemProfileNames();
}
/**
* Call this to restrict the system type that the user is allowed to choose
*/
public void restrictSystemType(String systemType)
{
restrictSystemTypesTo = new String[1];
restrictSystemTypesTo[0] = systemType;
if (mainPage != null)
mainPage.restrictSystemTypes(restrictSystemTypesTo);
}
/**
* Call this to restrict the system types that the user is allowed to choose
*/
public void restrictSystemTypes(String[] systemTypes)
{
this.restrictSystemTypesTo = systemTypes;
if (mainPage != null)
mainPage.restrictSystemTypes(systemTypes);
}
public IHost getDummyHost()
{
if (_dummyHost == null)
{
_dummyHost = new DummyHost(mainPage.getHostName(), mainPage.getSystemType());
}
return _dummyHost;
}
/**
* Creates the wizard pages.
* This method is an override from the parent Wizard class.
*/
public void addPages()
{
try {
mainPage = createMainPage(restrictSystemTypesTo);
mainPage.setConnectionNameValidators(SystemConnectionForm.getConnectionNameValidators());
mainPage.setCurrentlySelectedConnection(currentlySelectedConnection);
if (defaultUserId != null)
mainPage.setUserId(defaultUserId);
if (defaultConnectionName != null)
mainPage.setConnectionName(defaultConnectionName);
if (defaultHostName != null)
mainPage.setHostName(defaultHostName);
if (restrictSystemTypesTo != null)
mainPage.restrictSystemTypes(restrictSystemTypesTo);
ISystemProfile defaultProfile = SystemStartHere.getSystemProfileManager().getDefaultPrivateSystemProfile();
showProfilePageInitially = RSEUIPlugin.getDefault().getShowProfilePageInitially();
/* DKM - I don't think we should force profiles into the faces of users
* we no longer default to "private" so hopefully this would never be
* desirable
*
// if there is a default private profile, we might want to show the rename profile page
if (defaultProfile != null)
{
// make private profile equal to default profile
privateProfile = defaultProfile;
// get the private profile index in the list of active profiles
for (int idx=0; (privateProfileIndex<0) && (idx<activeProfileNames.length); idx++)
if (activeProfileNames[idx].equals(defaultProfile.getName()))
privateProfileIndex = idx;
// if profile page is to be shown initially, then add the page
if (showProfilePageInitially) {
rnmProfilePage = new SystemNewConnectionWizardRenameProfilePage(this) ;
addPage(rnmProfilePage);
}
// otherwise, do not add profile page
// and set the new private profile name to be the local machine name
else {
rnmProfilePage = null;
String initProfileName = RSEUIPlugin.getLocalMachineName();
int dotIndex = initProfileName.indexOf('.');
if (dotIndex != -1) {
initProfileName = initProfileName.substring(0, dotIndex);
}
setNewPrivateProfileName(initProfileName);
}
}
else
*/
{
mainPage.setProfileNames(activeProfileNames);
// if there is no connection currently selected, default the profile to
// place the new connection into to be the first of:
// 1. the profile the last connection was created in, in this session
// 2. the team profile.
if (currentlySelectedConnection == null)
{
if ((lastProfile == null) && (activeProfileNames!=null))
{
String defaultTeamName = ISystemPreferencesConstants.DEFAULT_TEAMPROFILE;
for (int idx=0; (lastProfile==null)&&(idx<activeProfileNames.length); idx++)
{
if (!activeProfileNames[idx].equals(defaultTeamName))
lastProfile = activeProfileNames[idx];
}
if ((lastProfile == null) && (activeProfileNames.length>0))
lastProfile = activeProfileNames[0];
}
if (lastProfile != null)
mainPage.setProfileNamePreSelection(lastProfile);
}
}
// getWizard().addPage((WizardPage)mainPage);
} catch (Exception exc)
{
SystemBasePlugin.logError("New connection: Error in createPages: ",exc);
}
}
/**
* Creates the wizard's main page.
* This method is an override from the parent class.
*/
protected RSENewConnectionWizardDefaultDelegateMainPage createMainPage(String[] restrictSystemTypesTo)
{
String pageTitle = null;
if ((restrictSystemTypesTo==null) || (restrictSystemTypesTo.length != 1))
pageTitle = SystemResources.RESID_NEWCONN_PAGE1_TITLE;
else
{
String onlySystemType = restrictSystemTypesTo[0];
if (onlySystemType.equals(IRSESystemType.SYSTEMTYPE_LOCAL))
pageTitle =SystemResources.RESID_NEWCONN_PAGE1_LOCAL_TITLE;
else
{
pageTitle =SystemResources.RESID_NEWCONN_PAGE1_REMOTE_TITLE;
pageTitle = SystemMessage.sub(pageTitle, "&1", onlySystemType);
}
}
mainPage = new RSENewConnectionWizardDefaultDelegateMainPage(getWizard(),
pageTitle,
SystemResources.RESID_NEWCONN_PAGE1_DESCRIPTION);
getWizard().setOutputObject(null);
return mainPage;
}
/**
* Set the currently selected connection. Used to better default entry fields.
*/
public void setCurrentlySelectedConnection(IHost conn)
{
this.currentlySelectedConnection = conn;
}
/**
* For "new" mode, allows setting of the initial user Id. Sometimes subsystems
* like to have their own default userId preference page option. If so, query
* it and set it here by calling this.
*/
public void setUserId(String userId)
{
defaultUserId = userId;
if (mainPage != null)
mainPage.setUserId(userId);
}
/**
* Preset the connection name
*/
public void setConnectionName(String name)
{
defaultConnectionName = name;
if (mainPage != null)
mainPage.setConnectionName(name);
}
/**
* Preset the host name
*/
public void setHostName(String name)
{
defaultHostName = name;
if (mainPage != null)
mainPage.setHostName(name);
}
/**
* Completes processing of the wizard. If this
* method returns true, the wizard will close;
* otherwise, it will stay active.
* This method is an override from the parent Wizard class.
*
* @return whether the wizard finished successfully
*/
public boolean performFinish()
{
boolean ok = mainPage.performFinish();
if (!ok)
getWizard().setPageError((IWizardPage)mainPage);
else if (ok && hasAdditionalPages())
{
for (int idx=0; ok && (idx<subsystemFactorySuppliedWizardPages.length); idx++)
{
ok = subsystemFactorySuppliedWizardPages[idx].performFinish();
if (!ok)
getWizard().setPageError(subsystemFactorySuppliedWizardPages[idx]);
}
}
if (ok)
{
boolean cursorSet = true;
getWizard().setBusyCursor(true);
ISystemRegistry sr = RSEUIPlugin.getDefault().getSystemRegistry();
// if private profile is not null, then we have to rename the private profile
// with the new profile name
if (privateProfile != null)
{
try
{
String newName = activeProfileNames[privateProfileIndex];
sr.renameSystemProfile(privateProfile, newName);
}
catch (SystemMessageException exc)
{
SystemMessageDialog.displayMessage(getWizard().getShell(), exc);
ok = false;
}
catch (Exception exc)
{
getWizard().setBusyCursor(false);
cursorSet = false;
String msg = "Exception renaming profile ";
SystemBasePlugin.logError(msg, exc);
SystemMessageDialog.displayExceptionMessage(getWizard().getShell(),exc);
ok = false;
}
}
if (ok)
{
try
{
String sysType = mainPage.getSystemType();
IHost conn =
sr.createHost(mainPage.getProfileName(), sysType,
mainPage.getConnectionName(), mainPage.getHostName(),
mainPage.getConnectionDescription(), mainPage.getDefaultUserId(),
mainPage.getDefaultUserIdLocation(), subsystemFactorySuppliedWizardPages);
getWizard().setBusyCursor(false);
cursorSet = false;
// a tweak that is the result of UCD feedback. Phil
if ((conn!=null) && SystemPerspectiveHelpers.isRSEPerspectiveActive())
{
if (sysType.equals(IRSESystemType.SYSTEMTYPE_ISERIES))
{
ISubSystem[] objSubSystems = sr.getSubSystemsBySubSystemConfigurationCategory("nativefiles", conn);
if ((objSubSystems != null)
&& (objSubSystems.length>0))// might be in product that doesn't have iSeries plugins
sr.expandSubSystem(objSubSystems[0]);
else
sr.expandHost(conn);
}
else
sr.expandHost(conn);
}
lastProfile = mainPage.getProfileName();
getWizard().setOutputObject(conn);
} catch (Exception exc)
{
if (cursorSet)
getWizard().setBusyCursor(false);
cursorSet = false;
String msg = "Exception creating connection ";
SystemBasePlugin.logError(msg, exc);
SystemMessageDialog.displayExceptionMessage(getWizard().getShell(),exc);
ok = false;
}
}
//getShell().setCursor(null);
//busyCursor.dispose();
if (cursorSet)
getWizard().setBusyCursor(false);
return ok;
}
return ok;
}
// callbacks from rename page
/**
* Set the new profile name specified on the rename profile page...
*/
protected void setNewPrivateProfileName(String newName)
{
activeProfileNames[privateProfileIndex] = newName;
if (mainPage != null)
{
mainPage.setProfileNames(activeProfileNames);
mainPage.setProfileNamePreSelection(newName);
}
}
/**
* Return the main page of this wizard
*/
public IWizardPage getMainPage()
{
addPages();
return mainPage;
}
/**
* Return the form of the main page of this wizard
*/
public SystemConnectionForm getMainPageForm()
{
return ((RSENewConnectionWizardDefaultDelegateMainPage)mainPage).getForm();
}
// ----------------------------------------
// CALLBACKS FROM SYSTEM CONNECTION PAGE...
// ----------------------------------------
/**
* Event: the user has selected a system type.
*/
public void systemTypeSelected(String systemType, boolean duringInitialization)
{
subsystemFactorySuppliedWizardPages = getAdditionalWizardPages(systemType);
if (!duringInitialization)
getWizard().getContainer().updateButtons();
}
/*
* Private method to get all the wizard pages from all the subsystem factories, given a
* system type.
*/
protected ISystemNewConnectionWizardPage[] getAdditionalWizardPages(String systemType)
{
// this query is expensive, so only do it once...
subsystemFactorySuppliedWizardPages = (ISystemNewConnectionWizardPage[])ssfWizardPagesPerSystemType.get(systemType);
if (subsystemFactorySuppliedWizardPages == null)
{
// query all affected subsystems for their list of additional wizard pages...
Vector additionalPages = new Vector();
ISystemRegistry sr = RSEUIPlugin.getTheSystemRegistry();
ISubSystemConfiguration[] factories = sr.getSubSystemConfigurationsBySystemType(systemType, true);
for (int idx=0; idx<factories.length; idx++)
{
ISubsystemConfigurationAdapter adapter = (ISubsystemConfigurationAdapter)factories[idx].getAdapter(ISubsystemConfigurationAdapter.class);
IWizardPage[] pages = adapter.getNewConnectionWizardPages(factories[idx], getWizard());
if (pages != null)
{
for (int widx=0; widx<pages.length; widx++)
additionalPages.addElement(pages[widx]);
}
}
subsystemFactorySuppliedWizardPages = new ISystemNewConnectionWizardPage[additionalPages.size()];
for (int idx=0; idx<subsystemFactorySuppliedWizardPages.length; idx++)
subsystemFactorySuppliedWizardPages[idx] = (ISystemNewConnectionWizardPage)additionalPages.elementAt(idx);
ssfWizardPagesPerSystemType.put(systemType, subsystemFactorySuppliedWizardPages);
}
return subsystemFactorySuppliedWizardPages;
}
/**
* Return true if there are additional pages. This decides whether to enable the Next button
* on the main page
*/
protected boolean hasAdditionalPages()
{
return (subsystemFactorySuppliedWizardPages != null) && (subsystemFactorySuppliedWizardPages.length>0);
}
/**
* Return the first additional page to show when user presses Next on the main page
*/
protected IWizardPage getFirstAdditionalPage()
{
if ((subsystemFactorySuppliedWizardPages != null) && (subsystemFactorySuppliedWizardPages.length>0))
{
IWizardPage previousPage = (IWizardPage)mainPage;
for (int idx=0; idx<subsystemFactorySuppliedWizardPages.length; idx++)
{
subsystemFactorySuppliedWizardPages[idx].setPreviousPage(previousPage);
previousPage = subsystemFactorySuppliedWizardPages[idx];
}
return subsystemFactorySuppliedWizardPages[0];
}
else
return null;
}
// --------------------
// PARENT INTERCEPTS...
// --------------------
/**
* Intercept of Wizard method so we can get the Next button behaviour to work right for the
* dynamically managed additional wizard pages.
*/
public IWizardPage getNextPage(IWizardPage page)
{
if (!hasAdditionalPages() || (page==rnmProfilePage))
return null;
else
{
int index = getAdditionalPageIndex(page);
if ((index == (subsystemFactorySuppliedWizardPages.length - 1)))
// last page or page not found
return null;
return subsystemFactorySuppliedWizardPages[index + 1];
}
}
/**
* @see org.eclipse.rse.ui.wizards.RSENewConnectionWizardDelegate#getPreviousPage(org.eclipse.jface.wizard.IWizardPage)
*/
public IWizardPage getPreviousPage(IWizardPage page) {
return null;
}
private int getAdditionalPageIndex(IWizardPage page)
{
for (int idx=0; idx<subsystemFactorySuppliedWizardPages.length; idx++)
{
if (page == subsystemFactorySuppliedWizardPages[idx])
return idx;
}
return -1;
}
/**
* Intercept of Wizard method so we can take into account our additional pages
*/
public boolean canFinish()
{
boolean ok = true;
if (ok && hasAdditionalPages())
{
for (int idx=0; ok && (idx<subsystemFactorySuppliedWizardPages.length); idx++)
ok = subsystemFactorySuppliedWizardPages[idx].isPageComplete();
}
return ok;
}
}

View file

@ -0,0 +1,184 @@
/********************************************************************************
* Copyright (c) 2000, 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/
package org.eclipse.rse.ui.wizards;
import java.util.HashMap;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.rse.core.IRSESystemType;
import org.eclipse.rse.ui.ISystemIconConstants;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.SystemResources;
/**
*
*/
public class RSENewConnectionWizard extends AbstractSystemWizard implements IRSENewConnectionWizard {
private HashMap map;
private IRSESystemType systemType;
private IRSENewConnectionWizardDelegate delegate;
private RSENewConnectionWizardMainPage mainPage;
/**
* Constructor.
*/
public RSENewConnectionWizard() {
super(SystemResources.RESID_NEWCONN_TITLE, RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_NEWCONNECTIONWIZARD_ID));
readWizardDelegateExtensions();
setForcePreviousAndNextButtons(true);
setNeedsProgressMonitor(true);
}
/**
* @see org.eclipse.rse.ui.wizards.IRSENewConnectionWizard#setSystemType(org.eclipse.rse.core.IRSESystemType)
*/
public void setSystemType(IRSESystemType systemType) {
this.systemType = systemType;
getDelegate(systemType);
}
/**
*
*/
private void readWizardDelegateExtensions() {
IExtensionRegistry registry = Platform.getExtensionRegistry();
IConfigurationElement[] elements = registry.getConfigurationElementsFor(NEW_CONNECTION_WIZARD_DELEGATE_EXTENSION_POINT_ID);
}
/**
* Get the new connection wizard delegate for the system type.
* @param systemType the system type for which we need the delegate.
*/
public IRSENewConnectionWizardDelegate getDelegate(IRSESystemType systemType) {
if (map != null) {
delegate = (IRSENewConnectionWizardDelegate)(map.get(systemType.getId()));
}
if (delegate == null) {
delegate = new RSEDefaultNewConnectionWizardDelegate();
}
// set the wizard
delegate.init(this, systemType);
return delegate;
}
/**
* @see org.eclipse.jface.wizard.Wizard#addPages()
*/
public void addPages() {
mainPage = new RSENewConnectionWizardMainPage(this, "Select System Type", "Select a system type");
addPage(mainPage);
}
/**
* @see org.eclipse.jface.wizard.Wizard#canFinish()
*/
public boolean canFinish() {
boolean result = mainPage.isPageComplete();
if (result) {
if (delegate != null) {
result = delegate.canFinish();
}
// we do not allow wizard to complete if the delegate is not yet available
else {
result = false;
}
}
return result;
}
/**
* @see org.eclipse.jface.wizard.Wizard#getNextPage(org.eclipse.jface.wizard.IWizardPage)
*/
public IWizardPage getNextPage(IWizardPage page) {
if (page == mainPage) {
return super.getNextPage(page);
}
else {
if (delegate != null) {
IWizardPage nextPage = delegate.getNextPage(page);
if (nextPage == null) {
return super.getNextPage(page);
}
else {
return nextPage;
}
}
else {
return super.getNextPage(page);
}
}
}
/**
* @see org.eclipse.jface.wizard.Wizard#getPreviousPage(org.eclipse.jface.wizard.IWizardPage)
*/
public IWizardPage getPreviousPage(IWizardPage page) {
if (page == mainPage) {
return super.getPreviousPage(page);
}
else {
if (delegate != null) {
IWizardPage prevPage = delegate.getPreviousPage(page);
if (prevPage == null) {
return super.getPreviousPage(page);
}
else {
return prevPage;
}
}
else {
return super.getPreviousPage(page);
}
}
}
/**
* @see org.eclipse.jface.wizard.Wizard#performFinish()
*/
public boolean performFinish() {
boolean result = mainPage.performFinish();
if (result) {
if (delegate != null) {
result = delegate.performFinish();
}
}
return result;
}
}

View file

@ -0,0 +1,358 @@
/********************************************************************************
* Copyright (c) 2002, 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/
package org.eclipse.rse.ui.wizards;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.rse.model.IHost;
import org.eclipse.rse.ui.ISystemConnectionFormCaller;
import org.eclipse.rse.ui.ISystemMessages;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.SystemConnectionForm;
import org.eclipse.rse.ui.messages.ISystemMessageLine;
import org.eclipse.rse.ui.validators.ISystemValidator;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
/**
* Default main page of the "New Connection" wizard.
* This page asks for the primary information, including:
* <ul>
* <li>Connection Name
* <li>Hostname/IP-address
* <li>UserId
* <li>Description
* </ul>
*/
public class RSENewConnectionWizardDefaultDelegateMainPage
//extends WizardPage
extends AbstractSystemWizardPage
implements ISystemMessages, ISystemNewConnectionWizardMainPage,
ISystemMessageLine, ISystemConnectionFormCaller
{
protected String[] restrictSystemTypesTo;
protected SystemConnectionForm form;
protected String parentHelpId;
protected RSEDefaultNewConnectionWizardDelegate delegate;
/**
* Constructor. Use this when you want to supply your own title and
* description strings.
*/
public RSENewConnectionWizardDefaultDelegateMainPage(Wizard wizard,
String title,
String description)
{
super(wizard, "NewConnection", title, description);
parentHelpId = RSEUIPlugin.HELPPREFIX + "wncc0000";
setHelp(parentHelpId);
this.delegate = delegate;
form = getForm();
}
/**
* Call this to restrict the system type that the user is allowed to choose
*/
public void restrictSystemType(String systemType)
{
restrictSystemTypesTo = new String[1];
restrictSystemTypesTo[0] = systemType;
form.restrictSystemTypes(restrictSystemTypesTo);
}
/**
* Call this to restrict the system types that the user is allowed to choose
*/
public void restrictSystemTypes(String[] systemTypes)
{
restrictSystemTypesTo = systemTypes;
form.restrictSystemTypes(restrictSystemTypesTo);
}
/**
* Return the main wizard typed
*/
private RSEDefaultNewConnectionWizardDelegate getOurWizardDelegate()
{
IWizard wizard = getWizard();
if (wizard instanceof RSEDefaultNewConnectionWizardDelegate)
return (RSEDefaultNewConnectionWizardDelegate)wizard;
else
return null;
}
/**
* Overrride this if you want to supply your own form. This may be called
* multiple times so please only instantatiate if the form instance variable
* is null, and then return the form instance variable.
* @see org.eclipse.rse.ui.SystemConnectionForm
*/
protected SystemConnectionForm getForm()
{
if (form == null)
form = new SystemConnectionForm(this,this);
return form;
}
/**
* Call this to specify a validator for the connection name. It will be called per keystroke.
*/
public void setConnectionNameValidators(ISystemValidator[] v)
{
form.setConnectionNameValidators(v);
}
/**
* Call this to specify a validator for the hostname. It will be called per keystroke.
*/
public void setHostNameValidator(ISystemValidator v)
{
form.setHostNameValidator(v);
}
/**
* Call this to specify a validator for the userId. It will be called per keystroke.
*/
public void setUserIdValidator(ISystemValidator v)
{
form.setUserIdValidator(v);
}
/**
* This method allows setting of the initial user Id. Sometimes subsystems
* like to have their own default userId preference page option. If so, query
* it and set it here by calling this.
*/
public void setUserId(String userId)
{
form.setUserId(userId);
}
/**
* Set the profile names to show in the combo
*/
public void setProfileNames(String[] names)
{
form.setProfileNames(names);
}
/**
* Set the profile name to preselect
*/
public void setProfileNamePreSelection(String name)
{
form.setProfileNamePreSelection(name);
}
/**
* Set the currently selected connection so as to better initialize input fields
*/
public void setCurrentlySelectedConnection(IHost connection)
{
form.setCurrentlySelectedConnection(connection);
}
/**
* Preset the connection name
*/
public void setConnectionName(String name)
{
form.setConnectionName(name);
}
/**
* Preset the host name
*/
public void setHostName(String name)
{
form.setHostName(name);
}
/**
* CreateContents is the one method that must be overridden from the parent class.
* In this method, we populate an SWT container with widgets and return the container
* to the caller (JFace). This is used as the contents of this page.
*/
public Control createContents(Composite parent)
{
return form.createContents(parent, SystemConnectionForm.CREATE_MODE, parentHelpId);
}
/**
* Return the Control to be given initial focus.
* Override from parent. Return control to be given initial focus.
*/
protected Control getInitialFocusControl()
{
return form.getInitialFocusControl();
}
/**
* Completes processing of the wizard. If this
* method returns true, the wizard will close;
* otherwise, it will stay active.
* This method is an override from the parent Wizard class.
*
* @return whether the wizard finished successfully
*/
public boolean performFinish()
{
return form.verify(true);
}
// --------------------------------- //
// METHODS FOR EXTRACTING USER DATA ...
// --------------------------------- //
/**
* Return user-entered System Type.
* Call this after finish ends successfully.
*/
public String getSystemType()
{
return form.getSystemType();
}
/**
* Return user-entered Connection Name.
* Call this after finish ends successfully.
*/
public String getConnectionName()
{
return form.getConnectionName();
}
/**
* Return user-entered Host Name.
* Call this after finish ends successfully.
*/
public String getHostName()
{
return form.getHostName();
}
/**
* Return user-entered Default User Id.
* Call this after finish ends successfully.
*/
public String getDefaultUserId()
{
return form.getDefaultUserId();
}
/**
* Return location where default user id is to be set.
* @see org.eclipse.rse.core.ISystemUserIdConstants
*/
public int getDefaultUserIdLocation()
{
return form.getUserIdLocation();
}
/**
* Return user-entered Description.
* Call this after finish ends successfully.
*/
public String getConnectionDescription()
{
return form.getConnectionDescription();
}
/**
* Return name of profile to contain new connection.
* Call this after finish ends successfully.
*/
public String getProfileName()
{
return form.getProfileName();
}
// ISystemMessageLine methods
// public void clearMessage()
// {
// setMessage(null);
// }
//public void clearErrorMessage()
//{
//setErrorMessage(null);
//}
public Object getLayoutData()
{
return null;
}
public void setLayoutData(Object gridData)
{
}
/**
* Return true if the page is complete, so to enable Finish.
* Called by wizard framework.
*/
public boolean isPageComplete()
{
//System.out.println("Inside isPageComplete. " + form.isPageComplete());
if (form!=null)
return form.isPageComplete() && form.isConnectionUnique();
else
return false;
}
/**
* Intercept of WizardPage so we know when Next is pressed
*/
public IWizardPage getNextPage()
{
//if (wizard == null)
//return null;
//return wizard.getNextPage(this);
RSEDefaultNewConnectionWizardDelegate newConnWizardDelegate = getOurWizardDelegate();
if (newConnWizardDelegate != null)
{
return newConnWizardDelegate.getFirstAdditionalPage();
}
else
return super.getNextPage();
}
/**
* Intercept of WizardPge so we know when the wizard framework is deciding whether
* to enable next or not.
*/
public boolean canFlipToNextPage()
{
//return isPageComplete() && getNextPage() != null;
RSEDefaultNewConnectionWizardDelegate newConnWizardDelegate = getOurWizardDelegate();
if (newConnWizardDelegate != null)
{
return (isPageComplete() && newConnWizardDelegate.hasAdditionalPages() && form.isConnectionUnique());
}
else
return super.canFlipToNextPage();
}
// ----------------------------------------
// CALLBACKS FROM SYSTEM CONNECTION FORM...
// ----------------------------------------
/**
* Event: the user has selected a system type.
*/
public void systemTypeSelected(String systemType, boolean duringInitialization)
{
RSEDefaultNewConnectionWizardDelegate newConnWizardDelegate = getOurWizardDelegate();
if (newConnWizardDelegate != null)
{
newConnWizardDelegate.systemTypeSelected(systemType, duringInitialization);
}
}
}

View file

@ -0,0 +1,78 @@
/********************************************************************************
* Copyright (c) 2000, 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/
package org.eclipse.rse.ui.wizards;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.rse.core.IRSESystemType;
/**
*
*/
public abstract class RSENewConnectionWizardDelegate implements IRSENewConnectionWizardDelegate {
private RSENewConnectionWizard wizard;
private IRSESystemType systemType;
/**
* @see org.eclipse.rse.ui.wizards.IRSENewConnectionWizardDelegate#init(org.eclipse.rse.ui.wizards.RSENewConnectionWizard, org.eclipse.rse.core.IRSESystemType)
*/
public void init(RSENewConnectionWizard wizard, IRSESystemType systemType) {
this.wizard = wizard;
this.systemType = systemType;
}
/**
* @see org.eclipse.rse.ui.wizards.IRSENewConnectionWizardDelegate#getWizard()
*/
public RSENewConnectionWizard getWizard() {
return wizard;
}
/**
* @see org.eclipse.rse.ui.wizards.IRSENewConnectionWizardDelegate#getSystemType()
*/
public IRSESystemType getSystemType() {
return systemType;
}
/**
* @see org.eclipse.rse.ui.wizards.IRSENewConnectionWizardDelegate#addPages()
*/
public void addPages() {
}
/**
* @see org.eclipse.rse.ui.wizards.IRSENewConnectionWizardDelegate#canFinish()
*/
public boolean canFinish() {
return false;
}
/**
* @see org.eclipse.rse.ui.wizards.IRSENewConnectionWizardDelegate#getNextPage(org.eclipse.jface.wizard.IWizardPage)
*/
public IWizardPage getNextPage(IWizardPage page) {
return null;
}
/**
* @see org.eclipse.rse.ui.wizards.IRSENewConnectionWizardDelegate#getPreviousPage(org.eclipse.jface.wizard.IWizardPage)
*/
public IWizardPage getPreviousPage(IWizardPage page) {
return wizard.getStartingPage();
}
}

View file

@ -0,0 +1,110 @@
/********************************************************************************
* Copyright (c) 2000, 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/
package org.eclipse.rse.ui.wizards;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.SystemResources;
import org.eclipse.rse.ui.SystemWidgetHelpers;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
/**
*
*/
public class RSENewConnectionWizardMainPage extends AbstractSystemWizardPage {
protected String parentHelpId;
protected Combo textSystemType;
/**
* Constructor.
* @param wizard the wizard.
* @param title the title of the wizard page.
* @param description the description of the wizard page.
*/
public RSENewConnectionWizardMainPage(IRSENewConnectionWizard wizard, String title, String description) {
super(wizard, "NewConnectionSystemType", title, description);
parentHelpId = RSEUIPlugin.HELPPREFIX + "wncc0000";
setHelp(parentHelpId);
}
/**
* @see org.eclipse.rse.ui.wizards.AbstractSystemWizardPage#createContents(org.eclipse.swt.widgets.Composite)
*/
public Control createContents(Composite parent) {
int nbrColumns = 2;
Composite composite_prompts = SystemWidgetHelpers.createComposite(parent, nbrColumns);
SystemWidgetHelpers.setCompositeHelp(composite_prompts, parentHelpId);
String temp = SystemWidgetHelpers.appendColon(SystemResources.RESID_CONNECTION_SYSTEMTYPE_LABEL);
Label labelSystemType = SystemWidgetHelpers.createLabel(composite_prompts, temp);
labelSystemType.setToolTipText(SystemResources.RESID_CONNECTION_SYSTEMTYPE_TIP);
textSystemType = SystemWidgetHelpers.createSystemTypeCombo(parent, null);
textSystemType.setToolTipText(SystemResources.RESID_CONNECTION_SYSTEMTYPE_TIP);
SystemWidgetHelpers.setHelp(textSystemType, RSEUIPlugin.HELPPREFIX + "ccon0003");
return composite_prompts;
}
/**
* @see org.eclipse.rse.ui.wizards.AbstractSystemWizardPage#getInitialFocusControl()
*/
protected Control getInitialFocusControl() {
if (textSystemType != null) {
return textSystemType;
}
else {
return null;
}
}
/**
* @see org.eclipse.rse.ui.wizards.AbstractSystemWizardPage#performFinish()
*/
public boolean performFinish() {
return true;
}
/**
* @see org.eclipse.jface.wizard.WizardPage#getNextPage()
*/
public IWizardPage getNextPage() {
IWizard wizard = getWizard();
// if the wizard is a new connection wizard, which should always be the case,
// get the new connection wizard delegate for the selected system type and
// ask for the main page
if (wizard instanceof IRSENewConnectionWizard) {
String systemTypeStr = textSystemType.getText();
IRSENewConnectionWizardDelegate delegate = ((IRSENewConnectionWizard)wizard).getDelegate(RSECorePlugin.getDefault().getRegistry().getSystemType(systemTypeStr));
return delegate.getMainPage();
}
else {
return super.getNextPage();
}
}
}

View file

@ -20,6 +20,8 @@ import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.rse.core.IRSESystemType;
import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.core.servicesubsystem.IServiceSubSystem;
import org.eclipse.rse.core.servicesubsystem.IServiceSubSystemConfiguration;
import org.eclipse.rse.core.subsystems.IConnectorService;
@ -78,12 +80,16 @@ public class SubSystemServiceWizardPage extends AbstractSystemNewConnectionWizar
IServiceSubSystemConfiguration currentFactory = (IServiceSubSystemConfiguration)getSubSystemFactory();
IServiceSubSystemConfiguration[] factories = getServiceSubSystemFactories(getMainPage().getSystemType(), currentFactory.getServiceType());
String systemTypeStr = getMainPage().getSystemType();
IRSESystemType systemType = RSECorePlugin.getDefault().getRegistry().getSystemType(systemTypeStr);
IServiceSubSystemConfiguration[] factories = getServiceSubSystemFactories(systemTypeStr, currentFactory.getServiceType());
IHost dummyHost = null;
if (getWizard() instanceof SystemNewConnectionWizard)
if (getWizard() instanceof RSENewConnectionWizard)
{
dummyHost = ((SystemNewConnectionWizard)getWizard()).getDummyHost();
dummyHost = ((RSENewConnectionWizard)getWizard()).getDelegate(systemType).getDummyHost();
}
// create elements for each

View file

@ -840,6 +840,7 @@ Contributors:
<!-- Define Persistence Provider extension point -->
<!-- ================================================================= -->
<extension-point id="persistenceProviders" name="%extPoint.persistenceProviders" schema="schema/persistenceProviders.exsd"/>
<extension-point id="newConnectionWizardDelegate" name="RSE New Connection Wizard Delegate" schema="schema/newConnectionWizardDelegate.exsd"/>
@ -1051,7 +1052,7 @@ Contributors:
name="%Creation.connection.name"
icon="icons/full/etool16/newconnection_wiz.gif"
category="org.eclipse.rse.ui.newWizards.rseCategory"
class="org.eclipse.rse.ui.wizards.SystemNewConnectionWizard"
class="org.eclipse.rse.ui.wizards.RSENewConnectionWizard"
preferredPerspectives="org.eclipse.rse.ui.view.SystemPerspective"
canFinishEarly="false"
hasPages="true">
@ -1060,4 +1061,4 @@ Contributors:
</description>
</wizard>
</extension>
</plugin>
</plugin>

View file

@ -0,0 +1,112 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.rse.ui">
<annotation>
<appInfo>
<meta.schema plugin="org.eclipse.rse.ui" id="newConnectionWizardDelegate" name="RSE New Connection Wizard Delegate"/>
</appInfo>
<documentation>
This extension point allows a New Connection wizard delegate to be provided for a certain system type. This is useful for those system types that need New Connection wizard pages which are different from the default pages supplied by RSE.
</documentation>
</annotation>
<element name="extension">
<complexType>
<attribute name="point" type="string" use="required">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="id" type="string">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="name" type="string">
<annotation>
<documentation>
</documentation>
<appInfo>
<meta.attribute translatable="true"/>
</appInfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="newConnectionWizardDelegate">
<complexType>
<attribute name="systemType" type="string" use="required">
<annotation>
<documentation>
The system type ID.
</documentation>
</annotation>
</attribute>
<attribute name="class" type="string" use="default" value="org.eclipse.rse.ui.wizards.RSENewConnectionWizardDelegate">
<annotation>
<documentation>
A class that implements
</documentation>
</annotation>
</attribute>
</complexType>
</element>
<annotation>
<appInfo>
<meta.section type="since"/>
</appInfo>
<documentation>
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="examples"/>
</appInfo>
<documentation>
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="apiInfo"/>
</appInfo>
<documentation>
The provider of a new connection delegate for a certain system type must implement &lt;samp&gt;org.eclipse.rse.ui.wizards.IRSENewConnectionWizardDelegate&lt;/samp&gt;. Instead of extending the interface, it is recommended that the abstract class &lt;samp&gt;org.eclipse.rse.ui.wizards.RSENewConnectionWizardDelegate&lt;/samp&gt; be extended.
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="implementation"/>
</appInfo>
<documentation>
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="copyright"/>
</appInfo>
<documentation>
Copyright (c) 2006 IBM Corporation. All Rights Reserved.
This program and the accompanying materials are made available under the terms
of the Eclipse Public License v1.0 which accompanies this distribution, and is
available at http://www.eclipse.org/legal/epl-v10.html
Contributors:
IBM Corporation - initial API and implementation
</documentation>
</annotation>
</schema>