mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-09-03 13:43:31 +02:00
[196936] Hide disabled system types
This commit is contained in:
parent
e5b5508d2e
commit
24ad145262
5 changed files with 77 additions and 30 deletions
|
@ -15,6 +15,7 @@
|
||||||
* Kevin Doyle (IBM) - [182024] Folder field only initialized if selection supports search
|
* Kevin Doyle (IBM) - [182024] Folder field only initialized if selection supports search
|
||||||
* Kevin Doyle (IBM) - [189430] Limited System Types displayed in Folder Dialog
|
* Kevin Doyle (IBM) - [189430] Limited System Types displayed in Folder Dialog
|
||||||
* Kevin Doyle (IBM) - [187427] Selecting an Archive will check Search Archives checkbox
|
* Kevin Doyle (IBM) - [187427] Selecting an Archive will check Search Archives checkbox
|
||||||
|
* Martin Oberhuber (Wind River) - [196936] Hide disabled system types
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.files.ui.search;
|
package org.eclipse.rse.internal.files.ui.search;
|
||||||
|
@ -414,7 +415,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
|
||||||
|
|
||||||
// limit the system types displayed to those that can support search
|
// limit the system types displayed to those that can support search
|
||||||
List types = new LinkedList();
|
List types = new LinkedList();
|
||||||
IRSESystemType[] allSystemTypes = RSECorePlugin.getTheCoreRegistry().getSystemTypes();
|
IRSESystemType[] allSystemTypes = SystemWidgetHelpers.getValidSystemTypes(null);
|
||||||
for (int i = 0; i < allSystemTypes.length; i++)
|
for (int i = 0; i < allSystemTypes.length; i++)
|
||||||
{
|
{
|
||||||
IRemoteFileSubSystemConfiguration rfssc = RemoteFileUtility.getFileSubSystemConfiguration(allSystemTypes[i]);
|
IRemoteFileSubSystemConfiguration rfssc = RemoteFileUtility.getFileSubSystemConfiguration(allSystemTypes[i]);
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
* David McKnight (IBM) - [194897] Should not remote refresh objects above subsystem.
|
* David McKnight (IBM) - [194897] Should not remote refresh objects above subsystem.
|
||||||
* Kevin Doyle - [193380] Deleting connection Refresh's Entire Remote Systems view
|
* Kevin Doyle - [193380] Deleting connection Refresh's Entire Remote Systems view
|
||||||
* Kevin Doyle - [195537] Move ElementComparer to Separate File
|
* Kevin Doyle - [195537] Move ElementComparer to Separate File
|
||||||
|
* Martin Oberhuber (Wind River) - [196936] Hide disabled system types
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.ui.view;
|
package org.eclipse.rse.internal.ui.view;
|
||||||
|
@ -127,6 +128,7 @@ import org.eclipse.rse.ui.RSEUIPlugin;
|
||||||
import org.eclipse.rse.ui.SystemBasePlugin;
|
import org.eclipse.rse.ui.SystemBasePlugin;
|
||||||
import org.eclipse.rse.ui.SystemMenuManager;
|
import org.eclipse.rse.ui.SystemMenuManager;
|
||||||
import org.eclipse.rse.ui.SystemPreferencesManager;
|
import org.eclipse.rse.ui.SystemPreferencesManager;
|
||||||
|
import org.eclipse.rse.ui.SystemWidgetHelpers;
|
||||||
import org.eclipse.rse.ui.actions.ISystemAction;
|
import org.eclipse.rse.ui.actions.ISystemAction;
|
||||||
import org.eclipse.rse.ui.actions.SystemNewConnectionAction;
|
import org.eclipse.rse.ui.actions.SystemNewConnectionAction;
|
||||||
import org.eclipse.rse.ui.actions.SystemRefreshAction;
|
import org.eclipse.rse.ui.actions.SystemRefreshAction;
|
||||||
|
@ -1041,7 +1043,7 @@ public class SystemView extends SafeTreeViewer
|
||||||
menu.add(new Separator(ISystemContextMenuConstants.GROUP_PROPERTIES)); // Properties
|
menu.add(new Separator(ISystemContextMenuConstants.GROUP_PROPERTIES)); // Properties
|
||||||
|
|
||||||
// [177537] [api] Dynamic system type provider need a hook to add dynamic system type specific menu groups.
|
// [177537] [api] Dynamic system type provider need a hook to add dynamic system type specific menu groups.
|
||||||
IRSESystemType[] systemTypes = RSECorePlugin.getTheCoreRegistry().getSystemTypes();
|
IRSESystemType[] systemTypes = SystemWidgetHelpers.getValidSystemTypes(null);
|
||||||
for (int i = 0; i < systemTypes.length; i++) {
|
for (int i = 0; i < systemTypes.length; i++) {
|
||||||
IRSESystemType systemType = systemTypes[i];
|
IRSESystemType systemType = systemTypes[i];
|
||||||
Object adapter = systemType.getAdapter(RSESystemTypeAdapter.class);
|
Object adapter = systemType.getAdapter(RSESystemTypeAdapter.class);
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
* Martin Oberhuber (Wind River) - [190195] Cannot enable new connection prompt in system view
|
* Martin Oberhuber (Wind River) - [190195] Cannot enable new connection prompt in system view
|
||||||
* Martin Oberhuber (Wind River) - [190271] Move ISystemViewInputProvider to Core
|
* Martin Oberhuber (Wind River) - [190271] Move ISystemViewInputProvider to Core
|
||||||
* David Dykstal (IBM) - [191311] enable global properties action
|
* David Dykstal (IBM) - [191311] enable global properties action
|
||||||
|
* Martin Oberhuber (Wind River) - [196936] Hide disabled system types
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.ui.view;
|
package org.eclipse.rse.internal.ui.view;
|
||||||
|
@ -676,7 +677,7 @@ public class SystemViewPart
|
||||||
populateSystemViewPulldownMenu(menuMgr, getShell(), showConnectionActions, this, systemView);
|
populateSystemViewPulldownMenu(menuMgr, getShell(), showConnectionActions, this, systemView);
|
||||||
|
|
||||||
// [179181] [api] Dynamic system type provider need a hook to add dynamic system type specific toolbar groups.
|
// [179181] [api] Dynamic system type provider need a hook to add dynamic system type specific toolbar groups.
|
||||||
IRSESystemType[] systemTypes = RSECorePlugin.getTheCoreRegistry().getSystemTypes();
|
IRSESystemType[] systemTypes = SystemWidgetHelpers.getValidSystemTypes(null);
|
||||||
for (int i = 0; i < systemTypes.length; i++) {
|
for (int i = 0; i < systemTypes.length; i++) {
|
||||||
IRSESystemType systemType = systemTypes[i];
|
IRSESystemType systemType = systemTypes[i];
|
||||||
Object adapter = systemType.getAdapter(RSESystemTypeAdapter.class);
|
Object adapter = systemType.getAdapter(RSESystemTypeAdapter.class);
|
||||||
|
|
|
@ -17,11 +17,11 @@
|
||||||
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
|
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
|
||||||
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
|
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
|
||||||
* Martin Oberhuber (Wind River) - [186779] Fix IRSESystemType.getAdapter()
|
* Martin Oberhuber (Wind River) - [186779] Fix IRSESystemType.getAdapter()
|
||||||
|
* Martin Oberhuber (Wind River) - [196936] Hide disabled system types
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.ui.propertypages;
|
package org.eclipse.rse.ui.propertypages;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
import java.util.Hashtable;
|
import java.util.Hashtable;
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
|
@ -40,9 +40,7 @@ import org.eclipse.jface.viewers.TableViewer;
|
||||||
import org.eclipse.jface.viewers.TextCellEditor;
|
import org.eclipse.jface.viewers.TextCellEditor;
|
||||||
import org.eclipse.jface.viewers.Viewer;
|
import org.eclipse.jface.viewers.Viewer;
|
||||||
import org.eclipse.rse.core.IRSESystemType;
|
import org.eclipse.rse.core.IRSESystemType;
|
||||||
import org.eclipse.rse.core.RSECorePlugin;
|
|
||||||
import org.eclipse.rse.core.RSEPreferencesManager;
|
import org.eclipse.rse.core.RSEPreferencesManager;
|
||||||
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.RSESystemTypeAdapter;
|
import org.eclipse.rse.ui.RSESystemTypeAdapter;
|
||||||
import org.eclipse.rse.ui.RSEUIPlugin;
|
import org.eclipse.rse.ui.RSEUIPlugin;
|
||||||
|
@ -318,20 +316,7 @@ public class SystemTypeFieldEditor extends FieldEditor
|
||||||
* @return The list of system types known to be in existence
|
* @return The list of system types known to be in existence
|
||||||
*/
|
*/
|
||||||
private IRSESystemType[] getSystemTypes(boolean restoreDefaults) {
|
private IRSESystemType[] getSystemTypes(boolean restoreDefaults) {
|
||||||
IRSESystemType[] types = RSECorePlugin.getTheCoreRegistry().getSystemTypes();
|
IRSESystemType[] types = SystemWidgetHelpers.getValidSystemTypes(null);
|
||||||
ArrayList list = new ArrayList();
|
|
||||||
if (systemTypes == null || restoreDefaults) {
|
|
||||||
for (int i = 0; i < types.length; i++) {
|
|
||||||
ISubSystemConfiguration[] configurations = RSECorePlugin.getTheSystemRegistry().getSubSystemConfigurationsBySystemType(types[i], false);
|
|
||||||
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;
|
return types;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,9 +16,12 @@
|
||||||
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
|
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
|
||||||
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
|
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
|
||||||
* Martin Oberhuber (Wind River) - [175680] Deprecate obsolete ISystemRegistry methods
|
* Martin Oberhuber (Wind River) - [175680] Deprecate obsolete ISystemRegistry methods
|
||||||
|
* Martin Oberhuber (Wind River) - [196936] Hide disabled system types
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.ui.widgets;
|
package org.eclipse.rse.ui.widgets;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
import org.eclipse.jface.viewers.ISelection;
|
import org.eclipse.jface.viewers.ISelection;
|
||||||
|
@ -34,6 +37,7 @@ import org.eclipse.rse.core.model.IHost;
|
||||||
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
|
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
|
||||||
import org.eclipse.rse.core.subsystems.ISubSystemConfigurationProxy;
|
import org.eclipse.rse.core.subsystems.ISubSystemConfigurationProxy;
|
||||||
import org.eclipse.rse.internal.ui.SystemResources;
|
import org.eclipse.rse.internal.ui.SystemResources;
|
||||||
|
import org.eclipse.rse.ui.RSESystemTypeAdapter;
|
||||||
import org.eclipse.rse.ui.SystemPreferencesManager;
|
import org.eclipse.rse.ui.SystemPreferencesManager;
|
||||||
import org.eclipse.rse.ui.SystemWidgetHelpers;
|
import org.eclipse.rse.ui.SystemWidgetHelpers;
|
||||||
import org.eclipse.rse.ui.actions.SystemNewConnectionAction;
|
import org.eclipse.rse.ui.actions.SystemNewConnectionAction;
|
||||||
|
@ -221,10 +225,17 @@ public class SystemHostCombo extends Composite implements ISelectionProvider,
|
||||||
// some one has overriden ISubSystemConfiguration.getSystemTypes(), the
|
// some one has overriden ISubSystemConfiguration.getSystemTypes(), the
|
||||||
// proxy cannot return the correct list anymore. This is especially important
|
// proxy cannot return the correct list anymore. This is especially important
|
||||||
// if the systemType <--> subsystemConfiguration association is dynamic!
|
// if the systemType <--> subsystemConfiguration association is dynamic!
|
||||||
|
|
||||||
|
// FIXME MOB: This should be reviewed for lazy plugin loading, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=196942
|
||||||
IRSESystemType[] types = ssfProxies[idx].getSubSystemConfiguration().getSystemTypes();
|
IRSESystemType[] types = ssfProxies[idx].getSubSystemConfiguration().getSystemTypes();
|
||||||
for (int jdx = 0; jdx < types.length; jdx++) {
|
for (int jdx = 0; jdx < types.length; jdx++) {
|
||||||
if (!vTypes.contains(types[jdx]))
|
IRSESystemType systemType = types[jdx];
|
||||||
vTypes.addElement(types[jdx]);
|
if (!vTypes.contains(systemType)) {
|
||||||
|
RSESystemTypeAdapter a = (RSESystemTypeAdapter)systemType.getAdapter(RSESystemTypeAdapter.class);
|
||||||
|
if (a!=null && a.isEnabled(systemType)) {
|
||||||
|
vTypes.addElement(systemType);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
restrictSystemTypesTo = (IRSESystemType[])vTypes.toArray(new IRSESystemType[vTypes.size()]);
|
restrictSystemTypesTo = (IRSESystemType[])vTypes.toArray(new IRSESystemType[vTypes.size()]);
|
||||||
|
@ -682,7 +693,7 @@ public class SystemHostCombo extends Composite implements ISelectionProvider,
|
||||||
* This fills the combination with the names of all the active connections of the given
|
* This fills the combination with the names of all the active connections of the given
|
||||||
* system type.
|
* system type.
|
||||||
* @param combo composite to populate
|
* @param combo composite to populate
|
||||||
* @param systemType the system type to restrict the connection list to. Pass null or * for all system types
|
* @param systemType the system type to restrict the connection list to. Pass null for all system types
|
||||||
* @param defaultConnection the default system connection to preselect.
|
* @param defaultConnection the default system connection to preselect.
|
||||||
* @param preSelectIfNoMatch true if we should preselect the first item if the given connection is not found
|
* @param preSelectIfNoMatch true if we should preselect the first item if the given connection is not found
|
||||||
* @param appendToCombo indicates whether or not to append to combo with population or replace
|
* @param appendToCombo indicates whether or not to append to combo with population or replace
|
||||||
|
@ -693,10 +704,35 @@ public class SystemHostCombo extends Composite implements ISelectionProvider,
|
||||||
{
|
{
|
||||||
boolean matchFound = false;
|
boolean matchFound = false;
|
||||||
IHost[] additionalConnections = null;
|
IHost[] additionalConnections = null;
|
||||||
if ( (systemType == null) || (systemType.equals("*")) ) //$NON-NLS-1$
|
if (systemType == null) {
|
||||||
additionalConnections = RSECorePlugin.getTheSystemRegistry().getHosts();
|
additionalConnections = RSECorePlugin.getTheSystemRegistry().getHosts();
|
||||||
else
|
if (additionalConnections!=null) {
|
||||||
additionalConnections = RSECorePlugin.getTheSystemRegistry().getHostsBySystemType(systemType);
|
boolean filtered = false;
|
||||||
|
List validHosts = new ArrayList(additionalConnections.length);
|
||||||
|
for (int i=0; i<additionalConnections.length; i++) {
|
||||||
|
IRSESystemType curSysType = additionalConnections[i].getSystemType();
|
||||||
|
RSESystemTypeAdapter a = (RSESystemTypeAdapter)curSysType.getAdapter(RSESystemTypeAdapter.class);
|
||||||
|
if (a.isEnabled(curSysType)) {
|
||||||
|
validHosts.add(additionalConnections[i]);
|
||||||
|
} else {
|
||||||
|
filtered = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (filtered) {
|
||||||
|
if (validHosts.size()==0) {
|
||||||
|
additionalConnections = null;
|
||||||
|
} else {
|
||||||
|
additionalConnections = (IHost[])validHosts.toArray(new IHost[validHosts.size()]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
RSESystemTypeAdapter a = (RSESystemTypeAdapter)systemType.getAdapter(RSESystemTypeAdapter.class);
|
||||||
|
if (a.isEnabled(systemType)) {
|
||||||
|
additionalConnections = RSECorePlugin.getTheSystemRegistry().getHostsBySystemType(systemType);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (additionalConnections != null)
|
if (additionalConnections != null)
|
||||||
{
|
{
|
||||||
String[] connectionNames = new String[additionalConnections.length];
|
String[] connectionNames = new String[additionalConnections.length];
|
||||||
|
@ -759,9 +795,13 @@ public class SystemHostCombo extends Composite implements ISelectionProvider,
|
||||||
boolean anyMatch = false;
|
boolean anyMatch = false;
|
||||||
for (int idx=0; idx<systemTypes.length; idx++)
|
for (int idx=0; idx<systemTypes.length; idx++)
|
||||||
{
|
{
|
||||||
match = populateConnectionCombo(combo, systemTypes[idx], defaultConnection, false, true);
|
IRSESystemType systemType = systemTypes[idx];
|
||||||
if (match)
|
RSESystemTypeAdapter a = (RSESystemTypeAdapter)systemType.getAdapter(RSESystemTypeAdapter.class);
|
||||||
anyMatch = true;
|
if (a.isEnabled(systemType)) {
|
||||||
|
match = populateConnectionCombo(combo, systemType, defaultConnection, false, true);
|
||||||
|
if (match)
|
||||||
|
anyMatch = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!anyMatch && (combo.getItemCount()>0))
|
if (!anyMatch && (combo.getItemCount()>0))
|
||||||
//combo.select(0);
|
//combo.select(0);
|
||||||
|
@ -812,11 +852,29 @@ public class SystemHostCombo extends Composite implements ISelectionProvider,
|
||||||
connections = RSECorePlugin.getTheSystemRegistry().getHostsBySubSystemConfigurationCategory(ssConfigCategory);
|
connections = RSECorePlugin.getTheSystemRegistry().getHostsBySubSystemConfigurationCategory(ssConfigCategory);
|
||||||
return addConnections(combo, connections, defaultConnection);
|
return addConnections(combo, connections, defaultConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An attempt to get some abstraction
|
* An attempt to get some abstraction
|
||||||
*/
|
*/
|
||||||
private boolean addConnections(Combo combo, IHost[] connections, IHost defaultConnection)
|
private boolean addConnections(Combo combo, IHost[] connections, IHost defaultConnection)
|
||||||
{
|
{
|
||||||
|
//bug 196936: filter connections for valid system types only
|
||||||
|
boolean filtered = false;
|
||||||
|
List filteredConnections = new ArrayList(connections.length);
|
||||||
|
for (int i=0; i<connections.length; i++) {
|
||||||
|
IRSESystemType systemType = connections[i].getSystemType();
|
||||||
|
RSESystemTypeAdapter a = (RSESystemTypeAdapter)systemType.getAdapter(RSESystemTypeAdapter.class);
|
||||||
|
if (a!=null && a.isEnabled(systemType)) {
|
||||||
|
filteredConnections.add(connections[i]);
|
||||||
|
} else {
|
||||||
|
filtered = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if (filtered) {
|
||||||
|
connections = (IHost[])filteredConnections.toArray(new IHost[filteredConnections.size()]);
|
||||||
|
this.connections = connections;
|
||||||
|
}
|
||||||
boolean matchFound = false;
|
boolean matchFound = false;
|
||||||
if (connections != null)
|
if (connections != null)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue