From 2c92c2ccb0c009a96fd5ebd992c4ed0f9b5c7ab1 Mon Sep 17 00:00:00 2001 From: Kushal Munir < kmunir@ca.ibm.com> Date: Tue, 1 Aug 2006 16:06:29 +0000 Subject: [PATCH] Bug 148969 --- .../eclipse/rse/ui/SystemWidgetHelpers.java | 24 +++++++++++++++-- .../propertypages/SystemTypeFieldEditor.java | 26 ++++++++++++++++++- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/SystemWidgetHelpers.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/SystemWidgetHelpers.java index 81b28769340..f7d2d464967 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/SystemWidgetHelpers.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/SystemWidgetHelpers.java @@ -15,12 +15,14 @@ ********************************************************************************/ package org.eclipse.rse.ui; +import java.util.ArrayList; import java.util.Locale; import org.eclipse.jface.action.IAction; import org.eclipse.rse.core.RSECorePlugin; import org.eclipse.rse.core.SystemBasePlugin; import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; +import org.eclipse.rse.internal.model.SystemRegistry; import org.eclipse.rse.model.IHost; import org.eclipse.rse.ui.widgets.InheritableEntryField; import org.eclipse.rse.ui.widgets.SystemHistoryCombo; @@ -1072,8 +1074,26 @@ public class SystemWidgetHelpers { */ public static Combo createSystemTypeCombo(Composite parent, Listener listener, String[] systemTypes) { Combo combo = createReadonlyCombo(parent, listener, SystemResources.RESID_CONNECTION_SYSTEMTYPE_TIP); - String[] typeItems = ((systemTypes == null) ? RSECorePlugin.getDefault().getRegistry().getSystemTypeNames() : - systemTypes); + String[] typeItems = ((systemTypes == null) ? RSECorePlugin.getDefault().getRegistry().getSystemTypeNames() : systemTypes); + + ArrayList list = new ArrayList(); + + 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]); + } + } + } + + typeItems = new String[list.size()]; + + for (int i = 0; i < list.size(); i++) { + typeItems[i] = (String)(list.get(i)); + } + combo.setItems(typeItems); combo.select(0); return combo; diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/propertypages/SystemTypeFieldEditor.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/propertypages/SystemTypeFieldEditor.java index e70072fb08f..8b36ed8ba90 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/propertypages/SystemTypeFieldEditor.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/propertypages/SystemTypeFieldEditor.java @@ -17,6 +17,7 @@ package org.eclipse.rse.ui.propertypages; +import java.util.ArrayList; import java.util.Enumeration; import java.util.Hashtable; import java.util.StringTokenizer; @@ -37,6 +38,7 @@ import org.eclipse.jface.viewers.TextCellEditor; import org.eclipse.jface.viewers.Viewer; import org.eclipse.rse.core.IRSESystemType; import org.eclipse.rse.core.RSECorePlugin; +import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; import org.eclipse.rse.ui.ISystemPreferencesConstants; import org.eclipse.rse.ui.RSESystemTypeAdapter; import org.eclipse.rse.ui.RSEUIPlugin; @@ -308,7 +310,29 @@ public class SystemTypeFieldEditor extends FieldEditor private IRSESystemType[] getSystemTypes(boolean defaults) { - return RSECorePlugin.getDefault().getRegistry().getSystemTypes(); + IRSESystemType[] types = RSECorePlugin.getDefault().getRegistry().getSystemTypes(); + + ArrayList list = new ArrayList(); + + if (systemTypes == null) { + + for (int i = 0; i < types.length; i++) { + + ISubSystemConfiguration[] configurations = RSEUIPlugin.getTheSystemRegistry().getSubSystemConfigurationsBySystemType(types[i].getName()); + + if (configurations != null && configurations.length > 0) { + list.add(types[i]); + } + } + } + + types = new IRSESystemType[list.size()]; + + for (int i = 0; i < list.size(); i++) { + types[i] = (IRSESystemType)(list.get(i)); + } + + return types; } // ------------------------