diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java
index e6ca3d2a3e5..7fe927e3329 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java
@@ -857,32 +857,31 @@ public class SystemView extends SafeTreeViewer
// GO INTO ACTION...
// OPEN IN NEW WINDOW ACTION...
if (fromSystemViewPart) {
- GoIntoAction goIntoAction = getGoIntoAction();
- boolean singleSelection = selection.size() == 1;
- goIntoAction.setEnabled(singleSelection);
- boolean selectionHasChildren = false;
- if (singleSelection)
+
+ Object selectedObject = selection.getFirstElement();
+ ISystemViewElementAdapter adapter = getViewAdapter(selectedObject);
+ if (!selectionIsRemoteObject)
{
- // dkm - first find out if the selection will have children
- // only add this action if there are children
- Object selectedObject = selection.getFirstElement();
- ISystemViewElementAdapter adapter = getViewAdapter(selectedObject);
- if (adapter != null)
- {
+ GoIntoAction goIntoAction = getGoIntoAction();
+ boolean singleSelection = selection.size() == 1;
+ goIntoAction.setEnabled(singleSelection);
+ if (singleSelection) {
+ // dkm - first find out if the selection will have children
+ // only add this action if there are children
if (adapter.hasChildren((IAdaptable)selectedObject))
{
- selectionHasChildren = true;
menu.appendToGroup(ISystemContextMenuConstants.GROUP_GOTO, goIntoAction);
}
}
- }
+
- if (showOpenViewActions()) {
- SystemOpenExplorerPerspectiveAction opa = getOpenToPerspectiveAction();
- opa.setSelection(selection);
- menu.appendToGroup(opa.getContextMenuGroup(), opa);
+ if (showOpenViewActions()) {
+ SystemOpenExplorerPerspectiveAction opa = getOpenToPerspectiveAction();
+ opa.setSelection(selection);
+ menu.appendToGroup(opa.getContextMenuGroup(), opa);
+ }
}
-
+
if (showGenericShowInTableAction()) {
SystemShowInTableAction showInTableAction = getShowInTableAction();
showInTableAction.setSelection(selection);
@@ -1325,6 +1324,11 @@ public class SystemView extends SafeTreeViewer
}
}
+ protected IRemoteObjectIdentifier getRemoteObjectIdentifier(Object o)
+ {
+ return (IRemoteObjectIdentifier)((IAdaptable)o).getAdapter(IRemoteObjectIdentifier.class);
+ }
+
/**
* Returns the implementation of IRemoteObjectIdentifier for the given
* object. Returns null if this object does not adaptable to this.
@@ -2112,8 +2116,7 @@ public class SystemView extends SafeTreeViewer
else
{
// only do this if the object is "remote"
- Object remoteAdapter = getRemoteAdapter(src);
- if (remoteAdapter != null)
+ if (adapter.isRemote(src))
{
// get up-to-date version of the container (need to make sure it still exists)
if (ss == null)
@@ -4677,7 +4680,7 @@ public class SystemView extends SafeTreeViewer
if (selectionEnableRenameAction) selectionEnableRenameAction = selectionShowRenameAction && adapter.canRename(element);
- if (selectionIsRemoteObject) selectionIsRemoteObject = (getRemoteAdapter(element) != null);
+ if (selectionIsRemoteObject) selectionIsRemoteObject = adapter.isRemote(element);
if (selectionIsRemoteObject && !selectionFlagsUpdated) {
ISubSystem srcSubSystem = adapter.getSubSystem(element);
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewConnectionAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewConnectionAdapter.java
index 980c8db6be6..7fda53eec2d 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewConnectionAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewConnectionAdapter.java
@@ -825,5 +825,15 @@ public class SystemViewConnectionAdapter
{
return ISystemMementoConstants.MEMENTO_KEY_CONNECTION;
}
+
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterAdapter.java
index 20019c4b2bc..a7aaea07098 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterAdapter.java
@@ -67,6 +67,8 @@ import org.eclipse.ui.views.properties.PropertyDescriptor;
*/
public class SystemViewFilterAdapter extends AbstractSystemViewAdapter
{
+
+
//private static String translatedFilterString = null;
// -------------------
// property descriptors
@@ -576,4 +578,14 @@ public class SystemViewFilterAdapter extends AbstractSystemViewAdapter
}
return result;
}
+
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterPoolAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterPoolAdapter.java
index 3ace2a5053d..e7d739834c3 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterPoolAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterPoolAdapter.java
@@ -290,4 +290,14 @@ public class SystemViewFilterPoolAdapter extends AbstractSystemViewAdapter
return (mgrName + "." + newName).toUpperCase(); //$NON-NLS-1$
}
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
+
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterPoolReferenceAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterPoolReferenceAdapter.java
index 2d2d485a36b..cb940f74457 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterPoolReferenceAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterPoolReferenceAdapter.java
@@ -389,4 +389,13 @@ public class SystemViewFilterPoolReferenceAdapter
return ISystemMementoConstants.MEMENTO_KEY_FILTERPOOLREFERENCE;
}
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterReferenceAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterReferenceAdapter.java
index 3367c9bd5d1..dbaab4ca277 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterReferenceAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterReferenceAdapter.java
@@ -995,4 +995,14 @@ public class SystemViewFilterReferenceAdapter
{
return subSys.getSubSystemConfiguration().supportsDeferredQueries();
}
+
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterStringAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterStringAdapter.java
index 2762e67ce9f..35d8dea0552 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterStringAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterStringAdapter.java
@@ -274,4 +274,14 @@ public class SystemViewFilterStringAdapter extends AbstractSystemViewAdapter
{
return false;
}
+
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewMessageAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewMessageAdapter.java
index f03c3244437..ddcf5cdc915 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewMessageAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewMessageAdapter.java
@@ -196,5 +196,15 @@ public class SystemViewMessageAdapter
{
return false;
}
+
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewPromptableAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewPromptableAdapter.java
index 4cd6a9bd72b..8e413ef3402 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewPromptableAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewPromptableAdapter.java
@@ -214,4 +214,14 @@ public class SystemViewPromptableAdapter
{
return false;
}
+
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewRootInputAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewRootInputAdapter.java
index c9b683689dd..1ef5e902865 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewRootInputAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewRootInputAdapter.java
@@ -228,4 +228,14 @@ public class SystemViewRootInputAdapter extends AbstractSystemViewAdapter
return getType(element);
//return "root";
}
+
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewScratchpadAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewScratchpadAdapter.java
index a41a4ee8089..50f5fabfb1d 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewScratchpadAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewScratchpadAdapter.java
@@ -278,4 +278,13 @@ public class SystemViewScratchpadAdapter extends AbstractSystemViewAdapter imple
return false;
}
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewSubSystemAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewSubSystemAdapter.java
index fa3cbd2aa57..c7a92597017 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewSubSystemAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewSubSystemAdapter.java
@@ -755,4 +755,13 @@ public class SystemViewSubSystemAdapter extends AbstractSystemViewAdapter
return ISystemMementoConstants.MEMENTO_KEY_SUBSYSTEM;
}
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewCategoryAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewCategoryAdapter.java
index 43541cddc78..99e278506f1 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewCategoryAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewCategoryAdapter.java
@@ -273,4 +273,13 @@ public class SystemTeamViewCategoryAdapter
return category.getProfile().getName() + "." + category.getLabel(); //$NON-NLS-1$
}
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewProfileAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewProfileAdapter.java
index 2bfcdcad8a3..3c74af84a3f 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewProfileAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewProfileAdapter.java
@@ -415,5 +415,15 @@ public class SystemTeamViewProfileAdapter
{
return ISystemMementoConstants.MEMENTO_KEY_PROFILE;
}
+
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewSubSystemConfigurationAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewSubSystemConfigurationAdapter.java
index 19cc3217998..9f9b332fa95 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewSubSystemConfigurationAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewSubSystemConfigurationAdapter.java
@@ -305,4 +305,13 @@ public class SystemTeamViewSubSystemConfigurationAdapter
return factory.getProfile().getName() + "." + factory.getParentCategory().getLabel() + "." + factory.getLabel(); //$NON-NLS-1$ //$NON-NLS-2$
}
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.java
index 6a5a49fdc78..96712cf2f32 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.java
@@ -1357,6 +1357,16 @@ public abstract class AbstractSystemViewAdapter implements ISystemViewElementAda
{
return (element instanceof ISystemPromptableObject);
}
+
+ /**
+ * Overridable by subclasses, but usually is not.
+ * Return true if this object is remote. In this case, the default is true.
+ */
+ public boolean isRemote(Object element)
+ {
+ return true;
+ }
+
/**
* Overridable by subclasses, but usually is not.
* Selection has changed in the Remote Systems view. Empty by default, but override if you need
diff --git a/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/internal/testsubsystem/TestSubSystemNodeAdapter.java b/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/internal/testsubsystem/TestSubSystemNodeAdapter.java
index 4fc15712f60..263ebbcee5e 100644
--- a/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/internal/testsubsystem/TestSubSystemNodeAdapter.java
+++ b/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/internal/testsubsystem/TestSubSystemNodeAdapter.java
@@ -320,4 +320,14 @@ public class TestSubSystemNodeAdapter extends AbstractSystemViewAdapter
public boolean showRename(Object element) {
return isTestSubSystemNode(element);
}
+
+ /**
+ * This is a local RSE artifact so returning false
+ *
+ * @param element the object to check
+ * @return false since this is not remote
+ */
+ public boolean isRemote(Object element) {
+ return false;
+ }
}