1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-04 23:55:26 +02:00

Bug 149151 - New Connection: 1st page should use a Listbox for systemtype

This commit is contained in:
Kushal Munir 2006-10-27 14:45:57 +00:00
parent 71ec46bac5
commit 6266ffaa3e
2 changed files with 57 additions and 8 deletions

View file

@ -11,7 +11,7 @@
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
* Javier Montalvo Orús (Symbian) - Bug 149151: New Connection first page should use a Listbox for systemtype
********************************************************************************/
package org.eclipse.rse.ui;
@ -747,6 +747,46 @@ public class SystemWidgetHelpers {
return createPushButton(group, label, listener, tooltip);
}
/**
* Creates a readonly system type listbox.
* Does NOT create the leading prompt or anything except the listbox.
* @param group composite to put the listbox into.
* @param listener object to listen for events. Can be null.
* @return empty listbox
*/
public static List createSystemTypeListBox(Composite group, Listener listener) {
return createSystemTypeListBox(group, listener, null);
}
/**
* Creates a readonly system type listbox with the given system types.
* Does NOT create the leading prompt or anything except the listbox.
* @param group composite to put the listbox into.
* @param listener object to listen for events. Can be null.
* @param systemTypes array of system types to add to the listbox
* @return listbox containing the given system types
*/
public static List createSystemTypeListBox(Composite group, Listener listener, String[] systemTypes) {
List list = createListBox(group, listener, false, null, SystemResources.RESID_CONNECTION_SYSTEMTYPE_TIP);
String[] typeItems = ((systemTypes == null) ? RSECorePlugin.getDefault().getRegistry().getSystemTypeNames() : systemTypes);
if (systemTypes == null) {
for (int i = 0; i < typeItems.length; i++) {
ISubSystemConfiguration[] configurations = RSEUIPlugin.getTheSystemRegistry().getSubSystemConfigurationsBySystemType(typeItems[i]);
if (configurations != null && configurations.length > 0) {
list.add(typeItems[i]);
}
}
}
list.select(0);
return list;
}
/**
* Creates a new listbox instance and sets the default
* layout data.

View file

@ -11,7 +11,7 @@
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
* Javier Montalvo Orús (Symbian) - Bug 149151: New Connection first page should use a Listbox for systemtype
********************************************************************************/
package org.eclipse.rse.ui.wizards;
@ -24,12 +24,13 @@ import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.SystemResources;
import org.eclipse.rse.ui.SystemWidgetHelpers;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Text;
/**
* The New Connection Wizard main page that allows selection of system type.
@ -37,7 +38,8 @@ import org.eclipse.swt.widgets.Listener;
public class RSENewConnectionWizardMainPage extends AbstractSystemWizardPage implements Listener {
protected String parentHelpId;
protected Combo textSystemType;
protected List textSystemType;
protected Text descriptionSystemType;
protected IWizardPage nextPage;
protected IRSESystemType[] restrictedSystemTypes;
@ -68,7 +70,7 @@ public class RSENewConnectionWizardMainPage extends AbstractSystemWizardPage imp
labelSystemType.setToolTipText(SystemResources.RESID_CONNECTION_SYSTEMTYPE_TIP);
if (restrictedSystemTypes == null) {
textSystemType = SystemWidgetHelpers.createSystemTypeCombo(parent, null);
textSystemType = SystemWidgetHelpers.createSystemTypeListBox(parent, null);
}
else {
String[] systemTypeNames = new String[restrictedSystemTypes.length];
@ -77,7 +79,7 @@ public class RSENewConnectionWizardMainPage extends AbstractSystemWizardPage imp
systemTypeNames[i] = restrictedSystemTypes[i].getName();
}
textSystemType = SystemWidgetHelpers.createSystemTypeCombo(parent, null, systemTypeNames);
textSystemType = SystemWidgetHelpers.createSystemTypeListBox(parent, null, systemTypeNames);
}
textSystemType.setToolTipText(SystemResources.RESID_CONNECTION_SYSTEMTYPE_TIP);
@ -85,6 +87,10 @@ public class RSENewConnectionWizardMainPage extends AbstractSystemWizardPage imp
textSystemType.addListener(SWT.Selection, this);
descriptionSystemType = SystemWidgetHelpers.createMultiLineTextField(parent,null,30);
descriptionSystemType.setEditable(false);
return composite_prompts;
}
@ -123,7 +129,7 @@ public class RSENewConnectionWizardMainPage extends AbstractSystemWizardPage imp
// 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();
String systemTypeStr = textSystemType.getSelection()[0];
IRSENewConnectionWizard newConnWizard = (IRSENewConnectionWizard)wizard;
newConnWizard.setSelectedSystemType(RSECorePlugin.getDefault().getRegistry().getSystemType(systemTypeStr));
return newConnWizard.getDelegate().getMainPage();
@ -139,10 +145,13 @@ public class RSENewConnectionWizardMainPage extends AbstractSystemWizardPage imp
public void handleEvent(Event event) {
if (event.type == SWT.Selection && event.widget == textSystemType) {
descriptionSystemType.setText(RSEUIPlugin.getTheSystemRegistry().getSubSystemConfigurationsBySystemType(textSystemType.getSelection()[0])[0].getDescription());
IWizard wizard = getWizard();
if (wizard instanceof IRSENewConnectionWizard) {
String systemTypeStr = textSystemType.getText();
String systemTypeStr = textSystemType.getSelection()[0];
IRSENewConnectionWizard newConnWizard = (IRSENewConnectionWizard)wizard;
newConnWizard.setSelectedSystemType(RSECorePlugin.getDefault().getRegistry().getSystemType(systemTypeStr));
}