1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-12 19:45:22 +02:00

[168976][api] move ISystemNewConnectionWizardPage from core to UI

https://bugs.eclipse.org/bugs/show_bug.cgi?id=168976
This commit is contained in:
David Dykstal 2008-04-08 19:26:52 +00:00
parent 268d275ba1
commit 72803bf0f0
18 changed files with 174 additions and 170 deletions

View file

@ -1,5 +1,5 @@
/******************************************************************************** /********************************************************************************
* Copyright (c) 2006 IBM Corporation. All rights reserved. * Copyright (c) 2006, 2008 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms * 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 * of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html * available at http://www.eclipse.org/legal/epl-v10.html
@ -11,7 +11,7 @@
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
* *
* Contributors: * Contributors:
* {Name} (company) - description of contribution. * David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.examples.daytime.ui; package org.eclipse.rse.examples.daytime.ui;
@ -21,6 +21,7 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Text;
import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
import org.eclipse.rse.examples.daytime.DaytimeResources; import org.eclipse.rse.examples.daytime.DaytimeResources;
import org.eclipse.rse.ui.wizards.AbstractSystemNewConnectionWizardPage; import org.eclipse.rse.ui.wizards.AbstractSystemNewConnectionWizardPage;
@ -37,9 +38,14 @@ public class DaytimeNewConnectionWizardPage extends
public Control createContents(Composite parent) { public Control createContents(Composite parent) {
Text field = new Text(parent, SWT.NONE); Text field = new Text(parent, SWT.NONE);
field.setText(DaytimeResources.DaytimeWizard_TestFieldText); field.setText(DaytimeResources.DaytimeWizard_TestFieldText);
// TODO Auto-generated method stub
return field; return field;
} }
/* (non-Javadoc)
* @see org.eclipse.rse.core.model.ISystemNewSubSystemProperties#applyValues(org.eclipse.rse.core.subsystems.ISubSystem)
*/
public boolean applyValues(ISubSystem ss) {
return true;
}
} }

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2006, 2007 IBM Corporation and others. * Copyright (c) 2006, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
@ -12,7 +12,7 @@
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
* *
* Contributors: * Contributors:
* {Name} (company) - description of contribution. * David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
*******************************************************************************/ *******************************************************************************/
package org.eclipse.rse.examples.daytime.ui; package org.eclipse.rse.examples.daytime.ui;
@ -21,9 +21,9 @@ import java.util.Vector;
import org.eclipse.jface.wizard.IWizard; import org.eclipse.jface.wizard.IWizard;
import org.eclipse.rse.core.model.ISystemNewConnectionWizardPage;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
import org.eclipse.rse.ui.view.SubSystemConfigurationAdapter; import org.eclipse.rse.ui.view.SubSystemConfigurationAdapter;
import org.eclipse.rse.ui.wizards.newconnection.ISystemNewConnectionWizardPage;
public class DaytimeSubSystemConfigurationAdapter extends SubSystemConfigurationAdapter public class DaytimeSubSystemConfigurationAdapter extends SubSystemConfigurationAdapter

View file

@ -0,0 +1,42 @@
/*******************************************************************************
* Copyright (c) 2002, 2008 IBM Corporation and others.
* 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:
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
*******************************************************************************/
package org.eclipse.rse.core.model;
import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
/**
* An interface used to drive properties into a subsystem during host creation.
* @noimplement This is an internal interface for use in the framework. Potential clients should extend one of the
* subclasses.
*/
public interface ISubSystemConfigurator {
/**
* Return the subsystem configuration associated with these properties.
*/
public ISubSystemConfiguration getSubSystemConfiguration();
/**
* Apply the values herein to a subsystem.
* @param ss the subystem to be affected.
* @return true if the values were applied.
*/
public boolean applyValues(ISubSystem ss);
}

View file

@ -1,48 +0,0 @@
/*******************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation and others.
* 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.core.model;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
/**
* Interface that all subsystem factory supplied pages contributed to the New Connection wizard
* must implement.
* @see org.eclipse.rse.ui.wizards.AbstractSystemNewConnectionWizardPage
* @see org.eclipse.rse.ui.view.SubSystemConfigurationAdapter#getNewConnectionWizardPages(org.eclipse.rse.core.subsystems.ISubSystemConfiguration, org.eclipse.jface.wizard.IWizard)
*/
public interface ISystemNewConnectionWizardPage {
/**
* This is called when the users presses Finish. All that should be done here is validation
* of the input, returning true if all is ok and the finish can proceed.
*/
public boolean performFinish();
/**
* This is called frequently by the framework to decide whether to enable the Finish and
* Next buttons.
* <p>
* Return true if the page is complete and has no errors
*/
public boolean isPageComplete();
/**
* Return the subsystem factory that supplied this page
*/
public ISubSystemConfiguration getSubSystemConfiguration();
}

View file

@ -26,6 +26,7 @@
* Martin Oberhuber (Wind River) - [215820] Move SystemRegistry implementation to Core * Martin Oberhuber (Wind River) - [215820] Move SystemRegistry implementation to Core
* David Dykstal (IBM) - [202630] getDefaultPrivateProfile() and ensureDefaultPrivateProfile() are inconsistent * David Dykstal (IBM) - [202630] getDefaultPrivateProfile() and ensureDefaultPrivateProfile() are inconsistent
* Martin Oberhuber (Wind River) - [cleanup] Add API "since" Javadoc tags * Martin Oberhuber (Wind River) - [cleanup] Add API "since" Javadoc tags
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.core.model; package org.eclipse.rse.core.model;
@ -450,13 +451,13 @@ public interface ISystemRegistry extends ISchedulingRule, IAdaptable, ISystemVie
* @param defaultUserId userId to use as the default for the subsystems. * @param defaultUserId userId to use as the default for the subsystems.
* @param defaultUserIdLocation one of the constants in {@link org.eclipse.rse.core.IRSEUserIdConstants} * @param defaultUserIdLocation one of the constants in {@link org.eclipse.rse.core.IRSEUserIdConstants}
* that tells us where to store the user Id * that tells us where to store the user Id
* @param newConnectionWizardPages when called from the New Connection wizard this is union of the list of additional * @param configurators these are the configurators supplied by the subsystem configurations that pertain to the specified system type. Else null.
* wizard pages supplied by the subsystem factories that pertain to the specified system type. Else null.
* @return SystemConnection object, or null if it failed to create. This is typically * @return SystemConnection object, or null if it failed to create. This is typically
* because the connectionName is not unique. Call getLastException() if necessary. * because the connectionName is not unique. Call getLastException() if necessary.
* @since 3.0
*/ */
public IHost createHost(String profileName, IRSESystemType systemType, String connectionName, String hostName, String description, String defaultUserId, int defaultUserIdLocation, public IHost createHost(String profileName, IRSESystemType systemType, String connectionName, String hostName, String description, String defaultUserId, int defaultUserIdLocation,
ISystemNewConnectionWizardPage[] newConnectionWizardPages) throws Exception; ISubSystemConfigurator[] configurators) throws Exception;
/** /**
* Create a connection object. This is a simplified version * Create a connection object. This is a simplified version

View file

@ -19,6 +19,7 @@
* David Dykstal (IBM) - [217556] remove service subsystem types * David Dykstal (IBM) - [217556] remove service subsystem types
* Xuan Chen (IBM) - [223126] [api][breaking] Remove API related to User Actions in RSE Core/UI * Xuan Chen (IBM) - [223126] [api][breaking] Remove API related to User Actions in RSE Core/UI
* Martin Oberhuber (Wind River) - [cleanup] Add API "since" Javadoc tags * Martin Oberhuber (Wind River) - [cleanup] Add API "since" Javadoc tags
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.core.subsystems; package org.eclipse.rse.core.subsystems;
@ -30,7 +31,7 @@ import org.eclipse.rse.core.filters.ISystemFilterPoolManager;
import org.eclipse.rse.core.filters.ISystemFilterPoolManagerProvider; import org.eclipse.rse.core.filters.ISystemFilterPoolManagerProvider;
import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.IRSEPersistableContainer; import org.eclipse.rse.core.model.IRSEPersistableContainer;
import org.eclipse.rse.core.model.ISystemNewConnectionWizardPage; import org.eclipse.rse.core.model.ISubSystemConfigurator;
import org.eclipse.rse.core.model.ISystemProfile; import org.eclipse.rse.core.model.ISystemProfile;
import org.eclipse.rse.services.IService; import org.eclipse.rse.services.IService;
@ -375,10 +376,10 @@ public interface ISubSystemConfiguration extends ISystemFilterPoolManagerProvide
* @param conn The connection to create a subsystem for * @param conn The connection to create a subsystem for
* @param creatingConnection true if we are creating a connection, false if just creating * @param creatingConnection true if we are creating a connection, false if just creating
* another subsystem for an existing connection. * another subsystem for an existing connection.
* @param yourNewConnectionWizardPages The wizard pages you supplied to the New Connection wizard, via the * @param configurators The configurators that will be applied to a new subsystem or null if there are none.
* getNewConnectionWizardPages(...) method, or null. * @since 3.0
*/ */
public ISubSystem createSubSystem(IHost conn, boolean creatingConnection, ISystemNewConnectionWizardPage[] yourNewConnectionWizardPages); public ISubSystem createSubSystem(IHost conn, boolean creatingConnection, ISubSystemConfigurator[] configurators);
// used in the case where newsubsystems are added after a connection exists // used in the case where newsubsystems are added after a connection exists
public ISubSystem createSubSystemAfterTheFact(IHost conn); public ISubSystem createSubSystemAfterTheFact(IHost conn);

View file

@ -1,23 +0,0 @@
/********************************************************************************
* Copyright (c) 2006, 2007 IBM Corporation and others. 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:
* Martin Oberhuber (Wind River) - [190231] Moved from rse.ui.wizards to core.subsystems
********************************************************************************/
package org.eclipse.rse.core.subsystems;
public interface ISubSystemPropertiesWizardPage
{
public boolean applyValues(ISubSystem ss);
}

View file

@ -47,6 +47,7 @@
* David Dykstal (IBM) - [202630] getDefaultPrivateProfile() and ensureDefaultPrivateProfile() are inconsistent * David Dykstal (IBM) - [202630] getDefaultPrivateProfile() and ensureDefaultPrivateProfile() are inconsistent
* David McKnight (IBM) - [224313] [api] Create RSE Events for MOVE and COPY holding both source and destination fields * David McKnight (IBM) - [224313] [api] Create RSE Events for MOVE and COPY holding both source and destination fields
* David Dykstal (IBM) - [200735][Persistence] Delete a profile that contains a connection and restart, profile is back without connections * David Dykstal (IBM) - [200735][Persistence] Delete a profile that contains a connection and restart, profile is back without connections
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.internal.core.model; package org.eclipse.rse.internal.core.model;
@ -89,7 +90,7 @@ import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.ISubSystemConfigurationCategories; import org.eclipse.rse.core.model.ISubSystemConfigurationCategories;
import org.eclipse.rse.core.model.ISystemContainer; import org.eclipse.rse.core.model.ISystemContainer;
import org.eclipse.rse.core.model.ISystemHostPool; import org.eclipse.rse.core.model.ISystemHostPool;
import org.eclipse.rse.core.model.ISystemNewConnectionWizardPage; import org.eclipse.rse.core.model.ISubSystemConfigurator;
import org.eclipse.rse.core.model.ISystemProfile; import org.eclipse.rse.core.model.ISystemProfile;
import org.eclipse.rse.core.model.ISystemProfileManager; import org.eclipse.rse.core.model.ISystemProfileManager;
import org.eclipse.rse.core.model.ISystemRegistry; import org.eclipse.rse.core.model.ISystemRegistry;
@ -1481,9 +1482,8 @@ public class SystemRegistry implements ISystemRegistry
return localConn; return localConn;
} }
/* /* (non-Javadoc)
* (non-Javadoc) * @see org.eclipse.rse.core.model.ISystemRegistry#createHost(java.lang.String, org.eclipse.rse.core.IRSESystemType, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int, org.eclipse.rse.core.model.ISubSystemConfigurator[])
* @see org.eclipse.rse.core.model.ISystemRegistry#createHost(java.lang.String, org.eclipse.rse.core.IRSESystemType, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int, org.eclipse.rse.core.model.ISystemNewConnectionWizardPage[])
*/ */
public IHost createHost( public IHost createHost(
String profileName, String profileName,
@ -1493,10 +1493,10 @@ public class SystemRegistry implements ISystemRegistry
String description, String description,
String defaultUserId, String defaultUserId,
int defaultUserIdLocation, int defaultUserIdLocation,
ISystemNewConnectionWizardPage[] newConnectionWizardPages) ISubSystemConfigurator[] configurators)
throws Exception throws Exception
{ {
return createHost(profileName, systemType, connectionName, hostName, description, defaultUserId, defaultUserIdLocation, true, newConnectionWizardPages); return createHost(profileName, systemType, connectionName, hostName, description, defaultUserId, defaultUserIdLocation, true, configurators);
} }
/** /**
@ -1518,16 +1518,14 @@ public class SystemRegistry implements ISystemRegistry
* @param defaultUserIdLocation one of the constants in {@link org.eclipse.rse.core.IRSEUserIdConstants} * @param defaultUserIdLocation one of the constants in {@link org.eclipse.rse.core.IRSEUserIdConstants}
* that tells us where to set the user Id * that tells us where to set the user Id
* @param createSubSystems <code>true</code> to create subsystems for the host, <code>false</code> otherwise. * @param createSubSystems <code>true</code> to create subsystems for the host, <code>false</code> otherwise.
* @param newConnectionWizardPages when called from the New Connection wizard this is union of the list of additional * @param configurators the list of all configurators supplied by the subsystem configuration that pertain to the specified system type. Else null.
* wizard pages supplied by the subsystem factories that pertain to the specified system type. Else null.
* @return SystemConnection object, or null if it failed to create. This is typically * @return SystemConnection object, or null if it failed to create. This is typically
* because the connectionName is not unique. Call getLastException() if necessary. * because the connectionName is not unique. Call getLastException() if necessary.
*/ */
// FIXME need to remove ISystemNewConnectionWizardPage[] from this and replace with IAdaptable[]
public IHost createHost(final String profileName, final IRSESystemType systemType, final String hostName, public IHost createHost(final String profileName, final IRSESystemType systemType, final String hostName,
final String hostAddress, final String description, final String defaultUserId, final String hostAddress, final String description, final String defaultUserId,
final int defaultUserIdLocation, final boolean createSubSystems, final int defaultUserIdLocation, final boolean createSubSystems,
final ISystemNewConnectionWizardPage[] newConnectionWizardPages) throws Exception { final ISubSystemConfigurator[] configurators) throws Exception {
final ISystemRegistry sr = this; final ISystemRegistry sr = this;
class CreateHostOperation implements ISystemProfileOperation { class CreateHostOperation implements ISystemProfileOperation {
private IHost host = null; private IHost host = null;
@ -1560,10 +1558,10 @@ public class SystemRegistry implements ISystemRegistry
if (createSubSystems) { if (createSubSystems) {
// determine the list of configs to use to create subsystems from // determine the list of configs to use to create subsystems from
List configs = new ArrayList(10); // arbitrary but reasonable List configs = new ArrayList(10); // arbitrary but reasonable
if (newConnectionWizardPages != null) { if (configurators != null) {
// if there are wizard pages need to at least use those // if there are configurators need to at least use those
for (int i = 0; i < newConnectionWizardPages.length; i++) { for (int i = 0; i < configurators.length; i++) {
configs.add(newConnectionWizardPages[i].getSubSystemConfiguration()); configs.add(configurators[i].getSubSystemConfiguration());
} }
// add any non-service subsystem configs that aren't already there that apply to this systemtype // add any non-service subsystem configs that aren't already there that apply to this systemtype
ISubSystemConfiguration[] configsArray = getSubSystemConfigurationsBySystemType(systemType, false); ISubSystemConfiguration[] configsArray = getSubSystemConfigurationsBySystemType(systemType, false);
@ -1587,7 +1585,7 @@ public class SystemRegistry implements ISystemRegistry
for (Iterator z = configs.iterator(); z.hasNext();) { for (Iterator z = configs.iterator(); z.hasNext();) {
ISubSystemConfiguration config = (ISubSystemConfiguration) z.next(); ISubSystemConfiguration config = (ISubSystemConfiguration) z.next();
config.getFilterPoolManager(profile, true); // create the filter pool config.getFilterPoolManager(profile, true); // create the filter pool
ISystemNewConnectionWizardPage[] interestingPages = getApplicableWizardPages(config, newConnectionWizardPages); ISubSystemConfigurator[] interestingPages = getApplicableConfigurators(config, configurators);
subsystems[i] = config.createSubSystem(host, true, interestingPages); // give it the opportunity to create a subsystem subsystems[i] = config.createSubSystem(host, true, interestingPages); // give it the opportunity to create a subsystem
i++; i++;
} }
@ -1798,7 +1796,7 @@ public class SystemRegistry implements ISystemRegistry
} }
} }
private ISystemNewConnectionWizardPage[] getApplicableWizardPages(ISubSystemConfiguration ssf, ISystemNewConnectionWizardPage[] allPages) private ISubSystemConfigurator[] getApplicableConfigurators(ISubSystemConfiguration ssf, ISubSystemConfigurator[] allPages)
{ {
if ((allPages == null) || (allPages.length == 0)) if ((allPages == null) || (allPages.length == 0))
return null; return null;
@ -1808,7 +1806,7 @@ public class SystemRegistry implements ISystemRegistry
++count; ++count;
if (count == 0) if (count == 0)
return null; return null;
ISystemNewConnectionWizardPage[] subPages = new ISystemNewConnectionWizardPage[count]; ISubSystemConfigurator[] subPages = new ISubSystemConfigurator[count];
count = 0; count = 0;
for (int idx = 0; idx < allPages.length; idx++) for (int idx = 0; idx < allPages.length; idx++)
if (allPages[idx].getSubSystemConfiguration() == ssf) if (allPages[idx].getSubSystemConfiguration() == ssf)

View file

@ -1,5 +1,5 @@
/******************************************************************************** /********************************************************************************
* Copyright (c) 2006, 2007 IBM Corporation and others. All rights reserved. * Copyright (c) 2006, 2008 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms * 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 * of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html * available at http://www.eclipse.org/legal/epl-v10.html
@ -14,6 +14,7 @@
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core * Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
* Martin Oberhuber (Wind River) - [189123] Move renameSubSystemProfile() from UI to Core * Martin Oberhuber (Wind River) - [189123] Move renameSubSystemProfile() from UI to Core
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.internal.files.ui.view; package org.eclipse.rse.internal.files.ui.view;
@ -26,7 +27,6 @@ import org.eclipse.jface.wizard.IWizard;
import org.eclipse.rse.core.filters.ISystemFilter; import org.eclipse.rse.core.filters.ISystemFilter;
import org.eclipse.rse.core.filters.ISystemFilterPool; import org.eclipse.rse.core.filters.ISystemFilterPool;
import org.eclipse.rse.core.model.ISystemMessageObject; import org.eclipse.rse.core.model.ISystemMessageObject;
import org.eclipse.rse.core.model.ISystemNewConnectionWizardPage;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
import org.eclipse.rse.internal.files.ui.actions.SystemFileUpdateFilterAction; import org.eclipse.rse.internal.files.ui.actions.SystemFileUpdateFilterAction;
import org.eclipse.rse.internal.files.ui.actions.SystemNewFileAction; import org.eclipse.rse.internal.files.ui.actions.SystemNewFileAction;
@ -40,6 +40,7 @@ import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.actions.SystemPasteFromClipboardAction; import org.eclipse.rse.ui.actions.SystemPasteFromClipboardAction;
import org.eclipse.rse.ui.view.IContextObject; import org.eclipse.rse.ui.view.IContextObject;
import org.eclipse.rse.ui.view.SubSystemConfigurationAdapter; import org.eclipse.rse.ui.view.SubSystemConfigurationAdapter;
import org.eclipse.rse.ui.wizards.newconnection.ISystemNewConnectionWizardPage;
import org.eclipse.swt.dnd.Clipboard; import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Shell;

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation and others. * Copyright (c) 2002, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
@ -12,11 +12,12 @@
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
* *
* Contributors: * Contributors:
* {Name} (company) - description of contribution. * David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
*******************************************************************************/ *******************************************************************************/
package org.eclipse.rse.internal.files.ui.wizards; package org.eclipse.rse.internal.files.ui.wizards;
import org.eclipse.jface.wizard.IWizard; import org.eclipse.jface.wizard.IWizard;
import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
import org.eclipse.rse.internal.ui.SystemResources; import org.eclipse.rse.internal.ui.SystemResources;
import org.eclipse.rse.services.clientserver.messages.SystemMessage; import org.eclipse.rse.services.clientserver.messages.SystemMessage;
@ -222,5 +223,12 @@ public class SystemFileNewConnectionWizardPage extends AbstractSystemNewConnecti
else else
return (textPort.getText().trim().length()>0); return (textPort.getText().trim().length()>0);
} }
/* (non-Javadoc)
* @see org.eclipse.rse.core.model.ISystemNewSubSystemProperties#applyValues(org.eclipse.rse.core.subsystems.ISubSystem)
*/
public boolean applyValues(ISubSystem ss) {
return true;
}
} }

View file

@ -18,6 +18,7 @@
* David Dykstal (IBM) - [197036] fixed NPE found during testing * David Dykstal (IBM) - [197036] fixed NPE found during testing
* David Dykstal (IBM) - [222270] clean up interfaces in org.eclipse.rse.core.filters * David Dykstal (IBM) - [222270] clean up interfaces in org.eclipse.rse.core.filters
* Xuan Chen (IBM) - [223126] [api][breaking] Remove API related to User Actions in RSE Core/UI * Xuan Chen (IBM) - [223126] [api][breaking] Remove API related to User Actions in RSE Core/UI
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
*******************************************************************************/ *******************************************************************************/
package org.eclipse.rse.subsystems.files.core.subsystems; package org.eclipse.rse.subsystems.files.core.subsystems;
@ -30,7 +31,7 @@ import org.eclipse.rse.core.filters.ISystemFilter;
import org.eclipse.rse.core.filters.ISystemFilterPool; import org.eclipse.rse.core.filters.ISystemFilterPool;
import org.eclipse.rse.core.filters.ISystemFilterPoolManager; import org.eclipse.rse.core.filters.ISystemFilterPoolManager;
import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.ISystemNewConnectionWizardPage; import org.eclipse.rse.core.model.ISubSystemConfigurator;
import org.eclipse.rse.core.subsystems.IFileConstants; import org.eclipse.rse.core.subsystems.IFileConstants;
import org.eclipse.rse.core.subsystems.ISubSystem; import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.SubSystemConfiguration; import org.eclipse.rse.core.subsystems.SubSystemConfiguration;
@ -417,12 +418,10 @@ public abstract class RemoteFileSubSystemConfiguration extends SubSystemConfigur
/** /**
* Populate a new subsystem with our unique attributes, and/or create default filter references. * Populate a new subsystem with our unique attributes, and/or create default filter references.
* @see org.eclipse.rse.core.subsystems.SubSystemConfiguration#initializeSubSystem(ISubSystem,ISystemNewConnectionWizardPage[])
* @see org.eclipse.rse.ui.view.SubSystemConfigurationAdapter#getNewConnectionWizardPages(org.eclipse.rse.core.subsystems.ISubSystemConfiguration, org.eclipse.jface.wizard.IWizard)
*/ */
protected void initializeSubSystem(ISubSystem ss, ISystemNewConnectionWizardPage[] yourNewConnectionWizardPages) protected void initializeSubSystem(ISubSystem ss, ISubSystemConfigurator[] configurators)
{ {
super.initializeSubSystem(ss, yourNewConnectionWizardPages); // add a reference to the default filter pool super.initializeSubSystem(ss, configurators); // add a reference to the default filter pool
/** FIXME - decouple wiz pages from core - do we still need this? /** FIXME - decouple wiz pages from core - do we still need this?
// Find the "set port" page we contributed to the New Connection wizard, reads it value, and // Find the "set port" page we contributed to the New Connection wizard, reads it value, and

View file

@ -19,6 +19,7 @@
* David McKnight (IBM) - [197129] Removing obsolete ISystemConnectionWizardPropertyPage and SystemSubSystemsPropertiesWizardPage * David McKnight (IBM) - [197129] Removing obsolete ISystemConnectionWizardPropertyPage and SystemSubSystemsPropertiesWizardPage
* David Dykstal (IBM) - [217556] remove service subsystem types * David Dykstal (IBM) - [217556] remove service subsystem types
* David McKnight (IBM) - [225506] [api][breaking] RSE UI leaks non-API types * David McKnight (IBM) - [225506] [api][breaking] RSE UI leaks non-API types
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.ui.view; package org.eclipse.rse.ui.view;
@ -41,7 +42,7 @@ import org.eclipse.rse.core.filters.ISystemFilterPoolReferenceManager;
import org.eclipse.rse.core.filters.ISystemFilterPoolWrapperInformation; import org.eclipse.rse.core.filters.ISystemFilterPoolWrapperInformation;
import org.eclipse.rse.core.filters.ISystemFilterReference; import org.eclipse.rse.core.filters.ISystemFilterReference;
import org.eclipse.rse.core.filters.ISystemFilterString; import org.eclipse.rse.core.filters.ISystemFilterString;
import org.eclipse.rse.core.model.ISystemNewConnectionWizardPage; import org.eclipse.rse.core.model.ISubSystemConfigurator;
import org.eclipse.rse.core.model.ISystemProfile; import org.eclipse.rse.core.model.ISystemProfile;
import org.eclipse.rse.core.subsystems.ISubSystem; import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
@ -91,6 +92,7 @@ import org.eclipse.rse.ui.validators.ValidatorSpecialChar;
import org.eclipse.rse.ui.widgets.IServerLauncherForm; import org.eclipse.rse.ui.widgets.IServerLauncherForm;
import org.eclipse.rse.ui.widgets.RemoteServerLauncherForm; import org.eclipse.rse.ui.widgets.RemoteServerLauncherForm;
import org.eclipse.rse.ui.wizards.SubSystemServiceWizardPage; import org.eclipse.rse.ui.wizards.SubSystemServiceWizardPage;
import org.eclipse.rse.ui.wizards.newconnection.ISystemNewConnectionWizardPage;
import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Shell;
@ -186,7 +188,7 @@ public class SubSystemConfigurationAdapter implements ISubSystemConfigurationAda
* <ul> * <ul>
* <li>The wizard pages must implement ISystemNewConnectionWizardPage, so as to fit into the wizard's framework * <li>The wizard pages must implement ISystemNewConnectionWizardPage, so as to fit into the wizard's framework
* <li>When the user successfully presses Finish, the createConnection method in the SystemRegistry will call * <li>When the user successfully presses Finish, the createConnection method in the SystemRegistry will call
* your {@link SubSystemConfiguration#createSubSystem(org.eclipse.rse.core.model.IHost,boolean, ISystemNewConnectionWizardPage[])} method to create the * your {@link SubSystemConfiguration#createSubSystem(org.eclipse.rse.core.model.IHost,boolean, ISubSystemConfigurator[])} method to create the
* your subsystem for the connection. The same pages you return here are passed back to you so you can * your subsystem for the connection. The same pages you return here are passed back to you so you can
* interrogate them for the user-entered data and use it when creating the default subsystem instance. * interrogate them for the user-entered data and use it when creating the default subsystem instance.
* </ul> * </ul>

View file

@ -1,5 +1,5 @@
/******************************************************************************** /********************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation and others. All rights reserved. * Copyright (c) 2002, 2008 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms * 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 * of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html * available at http://www.eclipse.org/legal/epl-v10.html
@ -14,15 +14,16 @@
* Uwe Stieber (Wind River) - Reworked new connection wizard extension point. * Uwe Stieber (Wind River) - Reworked new connection wizard extension point.
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods * Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
* Martin Oberhuber (Wind River) - [186748] Move ISubSystemConfigurationAdapter from UI/rse.core.subsystems.util * Martin Oberhuber (Wind River) - [186748] Move ISubSystemConfigurationAdapter from UI/rse.core.subsystems.util
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.ui.wizards; package org.eclipse.rse.ui.wizards;
import org.eclipse.jface.wizard.IWizard; import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.rse.core.model.ISystemNewConnectionWizardPage;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
import org.eclipse.rse.internal.ui.SystemResources; import org.eclipse.rse.internal.ui.SystemResources;
import org.eclipse.rse.ui.SystemConnectionForm; import org.eclipse.rse.ui.SystemConnectionForm;
import org.eclipse.rse.ui.wizards.newconnection.ISystemNewConnectionWizardPage;
import org.eclipse.rse.ui.wizards.newconnection.RSEAbstractNewConnectionWizard; import org.eclipse.rse.ui.wizards.newconnection.RSEAbstractNewConnectionWizard;
import org.eclipse.rse.ui.wizards.newconnection.RSEDefaultNewConnectionWizardMainPage; import org.eclipse.rse.ui.wizards.newconnection.RSEDefaultNewConnectionWizardMainPage;
import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite;

View file

@ -18,6 +18,7 @@
* Javier Montalvo Orus (Symbian) - [188146] Incorrect "FTP Settings" node in Property Sheet for Linux connection * Javier Montalvo Orus (Symbian) - [188146] Incorrect "FTP Settings" node in Property Sheet for Linux connection
* Martin Oberhuber (Wind River) - [190231] Move ISubSystemPropertiesWizardPage from UI to Core * Martin Oberhuber (Wind River) - [190231] Move ISubSystemPropertiesWizardPage from UI to Core
* David Dykstal (IBM) - [217556] remove service subsystem types * David Dykstal (IBM) - [217556] remove service subsystem types
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.ui.wizards; package org.eclipse.rse.ui.wizards;
@ -37,7 +38,6 @@ import org.eclipse.rse.core.subsystems.IConnectorService;
import org.eclipse.rse.core.subsystems.IServerLauncherProperties; import org.eclipse.rse.core.subsystems.IServerLauncherProperties;
import org.eclipse.rse.core.subsystems.ISubSystem; import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
import org.eclipse.rse.core.subsystems.ISubSystemPropertiesWizardPage;
import org.eclipse.rse.ui.widgets.services.ConnectorServiceElement; import org.eclipse.rse.ui.widgets.services.ConnectorServiceElement;
import org.eclipse.rse.ui.widgets.services.FactoryServiceElement; import org.eclipse.rse.ui.widgets.services.FactoryServiceElement;
import org.eclipse.rse.ui.widgets.services.PropertySetServiceElement; import org.eclipse.rse.ui.widgets.services.PropertySetServiceElement;
@ -51,7 +51,7 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Control;
public class SubSystemServiceWizardPage extends AbstractSystemNewConnectionWizardPage implements ISubSystemPropertiesWizardPage public class SubSystemServiceWizardPage extends AbstractSystemNewConnectionWizardPage
{ {
private ServicesForm _form; private ServicesForm _form;
private ISubSystemConfiguration _selectedConfiguration; private ISubSystemConfiguration _selectedConfiguration;

View file

@ -0,0 +1,38 @@
/*********************************************************************************
* Copyright (c) 2008 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:
* David Dykstal (IBM) - initial contribution.
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
*********************************************************************************/
package org.eclipse.rse.ui.wizards.newconnection;
import org.eclipse.rse.core.model.ISubSystemConfigurator;
/**
* Interface that all subsystem configuration supplied pages contributed to the New Connection wizard must implement.
* @see org.eclipse.rse.ui.wizards.AbstractSystemNewConnectionWizardPage
* @see org.eclipse.rse.ui.view.SubSystemConfigurationAdapter#getNewConnectionWizardPages(org.eclipse.rse.core.subsystems.ISubSystemConfiguration, org.eclipse.jface.wizard.IWizard)
*/
public interface ISystemNewConnectionWizardPage extends ISubSystemConfigurator {
/**
* This is called when the users presses Finish. All that should be done here is validation
* of the input.
* @return true if all is ok and the finish can proceed.
*/
public boolean performFinish();
/**
* This is called frequently by the framework to decide whether to enable the Finish and Next buttons.
* <p>
* @return true if the page is complete and has no errors.
*/
public boolean isPageComplete();
}

View file

@ -20,6 +20,7 @@
* Martin Oberhuber (Wind River) - [175680] Deprecate obsolete ISystemRegistry methods * Martin Oberhuber (Wind River) - [175680] Deprecate obsolete ISystemRegistry methods
* Uwe Stieber (Wind River) - [192202] Default RSE new connection wizard does not allow to query created host instance anymore * Uwe Stieber (Wind River) - [192202] Default RSE new connection wizard does not allow to query created host instance anymore
* Martin Oberhuber (Wind River) - [cleanup] Avoid using SystemStartHere in production code * Martin Oberhuber (Wind River) - [cleanup] Avoid using SystemStartHere in production code
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.ui.wizards.newconnection; package org.eclipse.rse.ui.wizards.newconnection;
@ -38,7 +39,6 @@ import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.rse.core.IRSESystemType; import org.eclipse.rse.core.IRSESystemType;
import org.eclipse.rse.core.RSECorePlugin; import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.ISystemNewConnectionWizardPage;
import org.eclipse.rse.core.model.ISystemProfile; import org.eclipse.rse.core.model.ISystemProfile;
import org.eclipse.rse.core.model.ISystemRegistry; import org.eclipse.rse.core.model.ISystemRegistry;
import org.eclipse.rse.core.subsystems.ISubSystem; import org.eclipse.rse.core.subsystems.ISubSystem;

View file

@ -33,6 +33,7 @@
* David McKnight (IBM) - [220547] [api][breaking] SimpleSystemMessage needs to specify a message id and some messages should be shared * David McKnight (IBM) - [220547] [api][breaking] SimpleSystemMessage needs to specify a message id and some messages should be shared
* Xuan Chen (IBM) - [223126] [api][breaking] Remove API related to User Actions in RSE Core/UI * Xuan Chen (IBM) - [223126] [api][breaking] Remove API related to User Actions in RSE Core/UI
* David McKnight (IBM) - [225506] [api][breaking] RSE UI leaks non-API types * David McKnight (IBM) - [225506] [api][breaking] RSE UI leaks non-API types
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.core.subsystems; package org.eclipse.rse.core.subsystems;
@ -64,7 +65,7 @@ import org.eclipse.rse.core.filters.ISystemFilterString;
import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.ILabeledObject; import org.eclipse.rse.core.model.ILabeledObject;
import org.eclipse.rse.core.model.IRSEPersistableContainer; import org.eclipse.rse.core.model.IRSEPersistableContainer;
import org.eclipse.rse.core.model.ISystemNewConnectionWizardPage; import org.eclipse.rse.core.model.ISubSystemConfigurator;
import org.eclipse.rse.core.model.ISystemProfile; import org.eclipse.rse.core.model.ISystemProfile;
import org.eclipse.rse.core.model.ISystemProfileManager; import org.eclipse.rse.core.model.ISystemProfileManager;
import org.eclipse.rse.core.model.ISystemRegistry; import org.eclipse.rse.core.model.ISystemRegistry;
@ -108,7 +109,7 @@ import org.eclipse.rse.ui.messages.SystemMessageDialog;
* <li>SubSystemConfiguration#getSubSystemActions() if they wish to supply actions for the right-click menu when * <li>SubSystemConfiguration#getSubSystemActions() if they wish to supply actions for the right-click menu when
* the user right clicks on a subsystem object created by this subsystem configuration. * the user right clicks on a subsystem object created by this subsystem configuration.
* <li>CreateDefaultFilterPool() to create any default filter pool when a new profile is created. * <li>CreateDefaultFilterPool() to create any default filter pool when a new profile is created.
* <li>#initializeSubSystem(SubSystem ss, ISystemNewConnectionWizardPage[]) * <li>#initializeSubSystem(SubSystem ss, configurarators[])
* </ul> * </ul>
* <p> * <p>
* A subsystem configuration will maintain in memory a list of all subsystem objects it has. This * A subsystem configuration will maintain in memory a list of all subsystem objects it has. This
@ -938,20 +939,16 @@ public abstract class SubSystemConfiguration implements ISubSystemConfiguration
* subsystem to manage references to filter pools * subsystem to manage references to filter pools
* <li>if (@link #supportsServerLaunchProperties()}, calls {@link #createServerLauncher(IConnectorService)}, to create * <li>if (@link #supportsServerLaunchProperties()}, calls {@link #createServerLauncher(IConnectorService)}, to create
* the server launcher instance to associate with this subsystem.}. * the server launcher instance to associate with this subsystem.}.
* <li>calls {@link #initializeSubSystem(ISubSystem, ISystemNewConnectionWizardPage[])} so subclasses can * <li>calls {@link #initializeSubSystem(ISubSystem, ISubSystemConfigurator[])} so subclasses can
* do their thing to initialize the subsystem. * do their thing to initialize the subsystem.
* <li>finally, saves the subsystem to disk. * <li>finally, saves the subsystem to disk.
* </ul> * </ul>
* @param conn The connection to create a subsystem for * @param conn The connection to create a subsystem for
* @param creatingConnection true if we are creating a connection, false if just creating * @param creatingConnection true if we are creating a connection, false if just creating
* another subsystem for an existing connection. * another subsystem for an existing connection.
* @param yourNewConnectionWizardPages The wizard pages you supplied to the New Connection wizard, via the * @param configurators configurators that inject properties into this new subsystem or null if there are none
* {@link org.eclipse.rse.ui.subsystems.ISubSystemConfigurationAdapter#getNewConnectionWizardPages(ISubSystemConfiguration, org.eclipse.jface.wizard.IWizard)}
* method or null if you didn't override this method.
* Note there may be more pages than you originally supplied as it is all pages contributed by
* this subsystem configuration object, including subclasses.
*/ */
public ISubSystem createSubSystem(IHost conn, boolean creatingConnection, ISystemNewConnectionWizardPage[] yourNewConnectionWizardPages) public ISubSystem createSubSystem(IHost conn, boolean creatingConnection, ISubSystemConfigurator[] configurators)
{ {
invalidateSubSystemCache(conn); // re-gen list of subsystems-by-connection on next call invalidateSubSystemCache(conn); // re-gen list of subsystems-by-connection on next call
if (creatingConnection) if (creatingConnection)
@ -989,7 +986,7 @@ public abstract class SubSystemConfiguration implements ISubSystemConfiguration
} }
} }
} }
initializeSubSystem(subsys, yourNewConnectionWizardPages); initializeSubSystem(subsys, configurators);
try try
{ {
saveSubSystem(subsys); saveSubSystem(subsys);
@ -1168,33 +1165,16 @@ public abstract class SubSystemConfiguration implements ISubSystemConfiguration
* The default behavior is to add a reference to the default filter pool for this subsystem configuration, * The default behavior is to add a reference to the default filter pool for this subsystem configuration,
* if there is one. Typically subclasses call <samp>super().initializeSubSystem(...)</samp> * if there is one. Typically subclasses call <samp>super().initializeSubSystem(...)</samp>
* to get this default behavior, then extend it. * to get this default behavior, then extend it.
*
* <p>The reason for the connect wizard pages parameter is in case your subsystem configuration contributes a page to that wizard,
* whose values are needed to set the subsystem's initial state. For example, you might decide to add a
* page to the connection wizard to prompt for a JDBC Driver name. If so, when this method is called at
* the time a new connection is created after the wizard, your page will have the user's value. You can
* thus use it here to initialize that subsystem property. Be use to use instanceof to find your particular
* page.
* </p>
*
* @param ss - The subsystem that was created via createSubSystemInternal * @param ss - The subsystem that was created via createSubSystemInternal
* @param yourNewConnectionWizardPages - The wizard pages you supplied to the New Connection wizard, via the * @param configurators an array of {@link ISubSystemConfigurator} used to inject values into this subsystem or null if there are none
* {@link org.eclipse.rse.ui.view.SubSystemConfigurationAdapter#getNewConnectionWizardPages(org.eclipse.rse.core.subsystems.ISubSystemConfiguration, org.eclipse.jface.wizard.IWizard)}
* method or null if you didn't override this method.
* Note there may be more pages than you originally supplied, as you are passed all pages contributed
* by this subsystem configuration object, including subclasses. This is null when this method is called other than
* for a New Connection operation.
*/ */
protected void initializeSubSystem(ISubSystem ss, ISystemNewConnectionWizardPage[] yourNewConnectionWizardPages) protected void initializeSubSystem(ISubSystem ss, ISubSystemConfigurator[] configurators) {
{ if (supportsFilters()) {
if (supportsFilters())
{
// -------------------------------------------- // --------------------------------------------
// add a reference to the default filter pool // add a reference to the default filter pool
// -------------------------------------------- // --------------------------------------------
ISystemFilterPool pool = getDefaultSystemFilterPool(ss); ISystemFilterPool pool = getDefaultSystemFilterPool(ss);
if (pool != null) if (pool != null) {
{
ISystemFilterPoolReferenceManager refMgr = ss.getSystemFilterPoolReferenceManager(); ISystemFilterPoolReferenceManager refMgr = ss.getSystemFilterPoolReferenceManager();
refMgr.setProviderEventNotification(false); refMgr.setProviderEventNotification(false);
refMgr.addReferenceToSystemFilterPool(pool); refMgr.addReferenceToSystemFilterPool(pool);
@ -1202,19 +1182,14 @@ public abstract class SubSystemConfiguration implements ISubSystemConfiguration
} }
} }
// apply properties set in the wizard to the subsystem // apply properties from the configurators to the subsystem
if (yourNewConnectionWizardPages != null) if (configurators != null) {
{ ISubSystemConfigurator ourPage = null;
ISubSystemPropertiesWizardPage ourPage = null; for (int idx = 0; (ourPage == null) && (idx < configurators.length); idx++) {
for (int idx=0; (ourPage==null) && (idx<yourNewConnectionWizardPages.length); idx++) ourPage = configurators[idx];
{ ourPage.applyValues(ss);
if (yourNewConnectionWizardPages[idx] instanceof ISubSystemPropertiesWizardPage) }
{ }
ourPage = (ISubSystemPropertiesWizardPage)yourNewConnectionWizardPages[idx];
ourPage.applyValues(ss);
}
}
}
} }
/** /**

View file

@ -1,5 +1,5 @@
/******************************************************************************** /********************************************************************************
* Copyright (c) 2006, 2007 IBM Corporation and others. All rights reserved. * Copyright (c) 2006, 2008 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms * 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 * of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html * available at http://www.eclipse.org/legal/epl-v10.html
@ -13,6 +13,7 @@
* Contributors: * Contributors:
* Martin Oberhuber (Wind River) - [186748] Move from UI/org.eclipse.rse.core.subsystems.util * Martin Oberhuber (Wind River) - [186748] Move from UI/org.eclipse.rse.core.subsystems.util
* Martin Oberhuber (Wind River) - [189123] Move renameSubSystemProfile() from UI to Core * Martin Oberhuber (Wind River) - [189123] Move renameSubSystemProfile() from UI to Core
* David Dykstal (IBM) - [168976][api] move ISystemNewConnectionWizardPage from core to UI
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.ui.subsystems; package org.eclipse.rse.ui.subsystems;
@ -27,7 +28,7 @@ import org.eclipse.rse.core.filters.ISystemFilterPoolReference;
import org.eclipse.rse.core.filters.ISystemFilterReference; import org.eclipse.rse.core.filters.ISystemFilterReference;
import org.eclipse.rse.core.filters.ISystemFilterString; import org.eclipse.rse.core.filters.ISystemFilterString;
import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.ISystemNewConnectionWizardPage; import org.eclipse.rse.core.model.ISubSystemConfigurator;
import org.eclipse.rse.core.subsystems.ISubSystem; import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
import org.eclipse.rse.ui.SystemMenuManager; import org.eclipse.rse.ui.SystemMenuManager;
@ -39,6 +40,7 @@ import org.eclipse.rse.ui.propertypages.SystemFilterStringPropertyPage;
import org.eclipse.rse.ui.validators.ISystemValidator; import org.eclipse.rse.ui.validators.ISystemValidator;
import org.eclipse.rse.ui.view.IContextObject; import org.eclipse.rse.ui.view.IContextObject;
import org.eclipse.rse.ui.widgets.IServerLauncherForm; import org.eclipse.rse.ui.widgets.IServerLauncherForm;
import org.eclipse.rse.ui.wizards.newconnection.ISystemNewConnectionWizardPage;
import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Shell;
@ -70,17 +72,18 @@ public interface ISubSystemConfigurationAdapter
// ----------------------------------- // -----------------------------------
/** /**
* Optionally return one or more wizard pages to append to the New Connection Wizard if * Optionally return one or more wizard pages to append to the New Connection Wizard if
* the user selects a system type that this subsystem configuration supports. * the user selects a system type that this subsystem configuration supports.
* <p> * <p>
* Some details: * Some details:
* <ul> * <ul>
* <li>The wizard pages must implement ISystemNewConnectionWizardPage, so as to fit into the wizard's framework * <li>The wizard pages must implement ISystemNewConnectionWizardPage, so as to fit into the wizard's framework
* <li>When the user successfully presses Finish, the createConnection method in the SystemRegistry will call * <li>When the user successfully presses Finish, the createConnection method in the SystemRegistry will call
* your {@link ISubSystemConfiguration#createSubSystem(IHost,boolean, ISystemNewConnectionWizardPage[])} method to create the * your {@link ISubSystemConfiguration#createSubSystem(IHost,boolean, ISubSystemConfigurator[])} method to create the
* your subsystem for the connection. The same pages you return here are passed back to you so you can * your subsystem for the connection. The same pages you return here are passed back to you so you can
* interrogate them for the user-entered data and use it when creating the default subsystem instance. * interrogate them for the user-entered data and use it when creating the default subsystem instance.
* </ul> * </ul>
* Tip: consider extending {@link org.eclipse.rse.ui.wizards.AbstractSystemNewConnectionWizardPage} for your wizard page class. * Tip: consider extending {@link org.eclipse.rse.ui.wizards.AbstractSystemNewConnectionWizardPage} for your wizard page class.
* @since 3.0
*/ */
public ISystemNewConnectionWizardPage[] getNewConnectionWizardPages(ISubSystemConfiguration config, IWizard wizard); public ISystemNewConnectionWizardPage[] getNewConnectionWizardPages(ISubSystemConfiguration config, IWizard wizard);