diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteFileAdapter.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteFileAdapter.java
index b8f892ed129..e123f33c7b9 100644
--- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteFileAdapter.java
+++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteFileAdapter.java
@@ -41,6 +41,7 @@ import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.AbstractTreeViewer;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.core.SystemBasePlugin;
import org.eclipse.rse.core.events.ISystemResourceChangeEvents;
import org.eclipse.rse.core.events.SystemResourceChangeEvent;
@@ -109,6 +110,7 @@ import org.eclipse.rse.subsystems.files.core.subsystems.RemoteFileEmpty;
import org.eclipse.rse.subsystems.files.core.subsystems.RemoteFileRoot;
import org.eclipse.rse.subsystems.files.core.subsystems.RemoteSearchResultsContentsType;
import org.eclipse.rse.subsystems.files.core.util.ValidatorFileUniqueName;
+import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteCmdSubSystem;
import org.eclipse.rse.ui.ISystemContextMenuConstants;
import org.eclipse.rse.ui.ISystemIconConstants;
import org.eclipse.rse.ui.ISystemMessages;
@@ -3016,6 +3018,8 @@ public class SystemViewRemoteFileAdapter
* If the given value is false
, then returns true
if the target is not an archive file.
*
true
, then returns true
if the target is a virtual file.
* If the given value is false
, then returns true
if the target is not a virtual file.true
, then returns true
if the host contains a command subsystem.
+ * If the given value is false
, then returns true
if the host does not contain a command subsystem.
* @see org.eclipse.ui.IActionFilter#testAttribute(java.lang.Object, java.lang.String, java.lang.String)
@@ -3183,6 +3187,32 @@ public class SystemViewRemoteFileAdapter
return tgt.isLink() && value.equals("true") || //$NON-NLS-1$
!tgt.isLink() && value.equals("false"); //$NON-NLS-1$
}
+ else if (inName.equals("iscommandsubsystemexists")) { //$NON-NLS-1$
+
+ boolean test = value.equals("true"); //$NON-NLS-1$
+
+ ISubSystem subsystem = getSubSystem(tgt);
+
+ if (subsystem != null) {
+ IHost host = subsystem.getHost();
+ ISystemRegistry registry = RSECorePlugin.getDefault().getSystemRegistry();
+
+ ISubSystem[] subsystems = registry.getSubSystems(host);
+
+ for (int i = 0; i < subsystems.length; i++) {
+ ISubSystem temp = subsystems[i];
+
+ if (temp instanceof IRemoteCmdSubSystem) {
+ return test;
+ }
+ }
+
+ return !test;
+ }
+ else {
+ return !test;
+ }
+ }
}
return super.testAttribute(target, name, value);
diff --git a/rse/plugins/org.eclipse.rse.shells.ui/plugin.xml b/rse/plugins/org.eclipse.rse.shells.ui/plugin.xml
index b3d76527fcb..856000d57ab 100644
--- a/rse/plugins/org.eclipse.rse.shells.ui/plugin.xml
+++ b/rse/plugins/org.eclipse.rse.shells.ui/plugin.xml
@@ -149,7 +149,10 @@ Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
objectClass="org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile"
id="org.eclipse.rse.shells.ui.launch">