diff --git a/rse/examples/org.eclipse.rse.examples.daytime/src/org/eclipse/rse/examples/daytime/model/DaytimeResourceAdapter.java b/rse/examples/org.eclipse.rse.examples.daytime/src/org/eclipse/rse/examples/daytime/model/DaytimeResourceAdapter.java
index f80d2d0cd98..828c8bea9b7 100644
--- a/rse/examples/org.eclipse.rse.examples.daytime/src/org/eclipse/rse/examples/daytime/model/DaytimeResourceAdapter.java
+++ b/rse/examples/org.eclipse.rse.examples.daytime/src/org/eclipse/rse/examples/daytime/model/DaytimeResourceAdapter.java
@@ -69,7 +69,7 @@ public class DaytimeResourceAdapter extends AbstractSystemViewAdapter implements
return null; // not really used, which is good because it is ambiguous
}
- public boolean hasChildren(Object element) {
+ public boolean hasChildren(IAdaptable element) {
return false;
}
diff --git a/rse/examples/org.eclipse.rse.examples.tutorial/src/samples/model/DeveloperResourceAdapter.java b/rse/examples/org.eclipse.rse.examples.tutorial/src/samples/model/DeveloperResourceAdapter.java
index 2dd4a8e9f2d..c9ef3affef1 100644
--- a/rse/examples/org.eclipse.rse.examples.tutorial/src/samples/model/DeveloperResourceAdapter.java
+++ b/rse/examples/org.eclipse.rse.examples.tutorial/src/samples/model/DeveloperResourceAdapter.java
@@ -96,7 +96,7 @@ public class DeveloperResourceAdapter extends AbstractSystemViewAdapter
/* (non-Javadoc)
* @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#hasChildren(java.lang.Object)
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
return false;
}
diff --git a/rse/examples/org.eclipse.rse.examples.tutorial/src/samples/model/TeamResourceAdapter.java b/rse/examples/org.eclipse.rse.examples.tutorial/src/samples/model/TeamResourceAdapter.java
index 31bde978d94..efc4e270dd0 100644
--- a/rse/examples/org.eclipse.rse.examples.tutorial/src/samples/model/TeamResourceAdapter.java
+++ b/rse/examples/org.eclipse.rse.examples.tutorial/src/samples/model/TeamResourceAdapter.java
@@ -94,7 +94,7 @@ public class TeamResourceAdapter extends AbstractSystemViewAdapter implements
/* (non-Javadoc)
* @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#hasChildren(java.lang.Object)
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
return true;
}
diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteFileAdapter.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteFileAdapter.java
index ba27e41c103..fd73d681c5f 100644
--- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteFileAdapter.java
+++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteFileAdapter.java
@@ -95,7 +95,6 @@ import org.eclipse.rse.services.search.IHostSearchConstants;
import org.eclipse.rse.services.search.IHostSearchResultConfiguration;
import org.eclipse.rse.services.search.IHostSearchResultSet;
import org.eclipse.rse.subsystems.files.core.model.ISystemFileRemoteTypes;
-import org.eclipse.rse.subsystems.files.core.model.RemoteFileFilterString;
import org.eclipse.rse.subsystems.files.core.model.RemoteFileUtility;
import org.eclipse.rse.subsystems.files.core.servicesubsystem.FileServiceSubSystem;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
@@ -115,14 +114,11 @@ import org.eclipse.rse.ui.SystemMenuManager;
import org.eclipse.rse.ui.SystemResources;
import org.eclipse.rse.ui.actions.SystemCopyToClipboardAction;
import org.eclipse.rse.ui.actions.SystemPasteFromClipboardAction;
-import org.eclipse.rse.ui.actions.SystemShowInMonitorAction;
-import org.eclipse.rse.ui.actions.SystemShowInTableAction;
import org.eclipse.rse.ui.dialogs.SystemRenameSingleDialog;
import org.eclipse.rse.ui.messages.SystemMessageDialog;
import org.eclipse.rse.ui.operations.SystemFetchOperation;
import org.eclipse.rse.ui.validators.ISystemValidator;
import org.eclipse.rse.ui.view.AbstractSystemViewAdapter;
-import org.eclipse.rse.ui.view.ContextObject;
import org.eclipse.rse.ui.view.IContextObject;
import org.eclipse.rse.ui.view.ISystemDragDropAdapter;
import org.eclipse.rse.ui.view.ISystemEditableRemoteObject;
@@ -495,7 +491,7 @@ public class SystemViewRemoteFileAdapter
isOpen = atv.getExpandedState(element);
if (!isOpen)
{
- if (!hasChildren(element))
+ if (!hasChildren((IAdaptable)element))
isOpen = true;
}
}
@@ -742,15 +738,48 @@ public class SystemViewRemoteFileAdapter
file.markStale(false);
return children;
}
+
/**
* Return true if this object has children.
* Since we can't predict the outcome of resolving the filter string, we return true.
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IContextObject element)
+ {
+ return internalHasChildren(element.getModelObject(), element.getFilterReference());
+ }
+
+ /**
+ * Return true if this object has children.
+ * Since we can't predict the outcome of resolving the filter string, we return true.
+ */
+ public boolean hasChildren(IAdaptable element)
+ {
+ return internalHasChildren(element, null);
+ }
+
+ public boolean internalHasChildren(IAdaptable element, ISystemFilterReference filterReference)
{
IRemoteFile file = (IRemoteFile) element;
boolean supportsArchiveManagement = file.getParentRemoteFileSubSystem().getParentRemoteFileSubSystemConfiguration().supportsArchiveManagement();
boolean hasChildren = false;
+
+ String filter = "*"; //$NON-NLS-1$
+ if (filterReference != null)
+ {
+ ISystemFilter filterObject = filterReference.getReferencedFilter();
+ if (filterObject.getFilterStringCount() > 0)
+ {
+ String filterString = filterObject.getFilterStrings()[0];
+ String separator = PathUtility.getSeparator(filterString);
+
+ int sepIndex = filterString.lastIndexOf(separator);
+ if (sepIndex > 0)
+ {
+ filter = filterString.substring(sepIndex + 1);
+ }
+ }
+ }
+
if (file instanceof IVirtualRemoteFile)
{
hasChildren = ((IVirtualRemoteFile)file).isVirtualFolder();
@@ -777,14 +806,14 @@ public class SystemViewRemoteFileAdapter
}
}
else {
- hasChildren = file.hasContents(RemoteChildrenContentsType.getInstance());
+ hasChildren = file.hasContents(RemoteChildrenContentsType.getInstance(), filter);
}
}
else
{
// check that the children are actually there
//Object[] contents = file.getContents(RemoteChildrenContentsType.getInstance());
- hasChildren = file.hasContents(RemoteChildrenContentsType.getInstance());
+ hasChildren = file.hasContents(RemoteChildrenContentsType.getInstance(), filter);
if (!hasChildren && !file.isStale())
hasChildren = true;
// if (!file.isStale() && contents != null && contents.length == 0 )
diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteSearchResultAdapter.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteSearchResultAdapter.java
index f2d5a670e08..e520548b032 100644
--- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteSearchResultAdapter.java
+++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteSearchResultAdapter.java
@@ -242,7 +242,7 @@ public class SystemViewRemoteSearchResultAdapter extends AbstractSystemViewAdapt
/**
* Returns false.
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
return false;
}
diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteSearchResultSetAdapter.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteSearchResultSetAdapter.java
index 6261764f1c5..3f867294035 100644
--- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteSearchResultSetAdapter.java
+++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteSearchResultSetAdapter.java
@@ -149,7 +149,7 @@ public class SystemViewRemoteSearchResultSetAdapter extends AbstractSystemViewAd
/**
* Returns true
if it has children, otherwise returns false
.
*/
- public boolean hasChildren(Object element) {
+ public boolean hasChildren(IAdaptable element) {
if (element instanceof IHostSearchResultSet) {
int num = ((IHostSearchResultSet)element).getNumOfResults();
diff --git a/rse/plugins/org.eclipse.rse.processes.ui/src/org/eclipse/rse/processes/ui/view/SystemViewRemoteProcessAdapter.java b/rse/plugins/org.eclipse.rse.processes.ui/src/org/eclipse/rse/processes/ui/view/SystemViewRemoteProcessAdapter.java
index fdde9af1afd..0730888e556 100644
--- a/rse/plugins/org.eclipse.rse.processes.ui/src/org/eclipse/rse/processes/ui/view/SystemViewRemoteProcessAdapter.java
+++ b/rse/plugins/org.eclipse.rse.processes.ui/src/org/eclipse/rse/processes/ui/view/SystemViewRemoteProcessAdapter.java
@@ -151,7 +151,7 @@ public class SystemViewRemoteProcessAdapter extends AbstractSystemViewAdapter
return parent;
}
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
// TODO Auto-generated method stub
return false;
diff --git a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/SystemRemoteCommandEntryForm.java b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/SystemRemoteCommandEntryForm.java
index d069cca1ce1..0ca179e522e 100644
--- a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/SystemRemoteCommandEntryForm.java
+++ b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/SystemRemoteCommandEntryForm.java
@@ -15,6 +15,7 @@
********************************************************************************/
package org.eclipse.rse.shells.ui;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.rse.core.SystemBasePlugin;
import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.ISubSystemConfigurationCategories;
@@ -148,7 +149,7 @@ public class SystemRemoteCommandEntryForm extends Composite
{
try
{
- currSubSystem.runCommand(cmd, null);
+ currSubSystem.runCommand(new NullProgressMonitor(), cmd, null);
}
catch ( Exception e )
{
diff --git a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/actions/SystemCommandAction.java b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/actions/SystemCommandAction.java
index 397449b43ac..68a1ac22cf2 100644
--- a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/actions/SystemCommandAction.java
+++ b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/actions/SystemCommandAction.java
@@ -19,6 +19,8 @@ package org.eclipse.rse.shells.ui.actions;
import java.util.Iterator;
import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.window.Window;
@@ -396,6 +398,7 @@ public class SystemCommandAction extends SystemBaseAction
}
}
+ IProgressMonitor monitor = new NullProgressMonitor();
if (_selected != null)
{
IRemoteCmdSubSystem cmdSubSystem = getCommandSubSystem();
@@ -403,7 +406,7 @@ public class SystemCommandAction extends SystemBaseAction
if (launchNewShell)
{
- Object[] results = cmdSubSystem.runCommand(cmd, _selected);
+ Object[] results = cmdSubSystem.runCommand(monitor, cmd, _selected);
Object cmdObject = results[0];
if (cmdObject instanceof IRemoteCommandShell)
{
@@ -425,8 +428,8 @@ public class SystemCommandAction extends SystemBaseAction
{
cdCmd = "cd /d \"" + path + '\"'; //$NON-NLS-1$
}
- cmdSubSystem.sendCommandToShell(cdCmd, defaultShell);
- cmdSubSystem.sendCommandToShell(cmd, defaultShell);
+ cmdSubSystem.sendCommandToShell(monitor, cdCmd, defaultShell);
+ cmdSubSystem.sendCommandToShell(monitor, cmd, defaultShell);
}
}
else
@@ -434,7 +437,7 @@ public class SystemCommandAction extends SystemBaseAction
IRemoteCmdSubSystem cmdSubSystem = getCommandSubSystem();
if (cmdSubSystem != null)
{
- Object[] results = cmdSubSystem.runCommand(cmd, _selected);
+ Object[] results = cmdSubSystem.runCommand(monitor, cmd, _selected);
Object cmdObject = results[0];
if (cmdObject instanceof IRemoteCommandShell)
{
@@ -484,7 +487,7 @@ public class SystemCommandAction extends SystemBaseAction
{
SystemCommandsUI commandsUI = SystemCommandsUI.getInstance();
SystemCommandsViewPart cmdsPart = commandsUI.activateCommandsView();
- IRemoteCommandShell cmd = cmdSubSystem.runShell(_selected);
+ IRemoteCommandShell cmd = cmdSubSystem.runShell(new NullProgressMonitor(), _selected);
cmdsPart.updateOutput(cmd);
}
else
@@ -494,7 +497,7 @@ public class SystemCommandAction extends SystemBaseAction
{
SystemCommandsUI commandsUI = SystemCommandsUI.getInstance();
SystemCommandsViewPart cmdsPart = commandsUI.activateCommandsView();
- IRemoteCommandShell cmd = cmdSubSystem.runShell( _selected);
+ IRemoteCommandShell cmd = cmdSubSystem.runShell(new NullProgressMonitor(), _selected);
cmdsPart.updateOutput(cmd);
}
//showInView(cmd);
diff --git a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/actions/SystemTerminateShellAction.java b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/actions/SystemTerminateShellAction.java
index 694566e1cc7..f193055fab3 100644
--- a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/actions/SystemTerminateShellAction.java
+++ b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/actions/SystemTerminateShellAction.java
@@ -19,6 +19,7 @@ package org.eclipse.rse.shells.ui.actions;
import java.util.ArrayList;
import java.util.List;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.rse.shells.ui.ShellResources;
import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteCmdSubSystem;
@@ -81,7 +82,7 @@ public class SystemTerminateShellAction extends SystemBaseShellAction
IRemoteCmdSubSystem cmdSubSystem = command.getCommandSubSystem();
if (cmdSubSystem != null)
{
- cmdSubSystem.cancelShell(command);
+ cmdSubSystem.cancelShell(new NullProgressMonitor(), command);
}
}
catch (Exception e)
diff --git a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/CommandsViewPage.java b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/CommandsViewPage.java
index 1146c66f09c..050a9d9a4ce 100644
--- a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/CommandsViewPage.java
+++ b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/CommandsViewPage.java
@@ -17,6 +17,7 @@
package org.eclipse.rse.shells.ui.view;
import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.text.ITextOperationTarget;
import org.eclipse.jface.util.IPropertyChangeListener;
@@ -358,7 +359,7 @@ FocusListener
//boolean alreadyHandled = false;
if (adapter != null)
{
- if (adapter.hasChildren(element))
+ if (adapter.hasChildren((IAdaptable)element))
{
// special case for folders
if (element instanceof IRemoteFile)
@@ -443,7 +444,7 @@ FocusListener
IRemoteCmdSubSystem commandSubSystem = remoteCommand.getCommandSubSystem();
try
{
- commandSubSystem.sendCommandToShell(inputStr, remoteCommand);
+ commandSubSystem.sendCommandToShell(new NullProgressMonitor(), inputStr, remoteCommand);
}
catch (Exception e)
{
@@ -464,7 +465,7 @@ FocusListener
IRemoteCmdSubSystem commandSubSystem = remoteCommand.getCommandSubSystem();
try
{
- commandSubSystem.sendCommandToShell("#break", remoteCommand); //$NON-NLS-1$
+ commandSubSystem.sendCommandToShell(new NullProgressMonitor(), "#break", remoteCommand); //$NON-NLS-1$
}
catch (Exception e)
{
diff --git a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemBuildErrorViewPart.java b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemBuildErrorViewPart.java
index 3eb981139f8..101f6a4193e 100644
--- a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemBuildErrorViewPart.java
+++ b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemBuildErrorViewPart.java
@@ -233,7 +233,7 @@ public class SystemBuildErrorViewPart extends ViewPart implements ISelectionList
//boolean alreadyHandled = false;
if (adapter != null)
{
- if (!adapter.hasChildren(element))
+ if (!adapter.hasChildren((IAdaptable)element))
{
/*alreadyHandled =*/ adapter.handleDoubleClick(element);
}
diff --git a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemCommandsViewPart.java b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemCommandsViewPart.java
index ea103c5aa3f..c25eb5ef810 100644
--- a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemCommandsViewPart.java
+++ b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemCommandsViewPart.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IContributionItem;
@@ -147,7 +148,7 @@ public class SystemCommandsViewPart
{
try
{
- IRemoteCommandShell cmd = _cmdSubSystem.runShell( null);
+ IRemoteCommandShell cmd = _cmdSubSystem.runShell(new NullProgressMonitor(), null);
if (cmd != null)
{
showInView(cmd);
diff --git a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemViewRemoteOutputAdapter.java b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemViewRemoteOutputAdapter.java
index caf1ff28971..96b98d31b94 100644
--- a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemViewRemoteOutputAdapter.java
+++ b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemViewRemoteOutputAdapter.java
@@ -342,7 +342,7 @@ implements ISystemViewElementAdapter, ISystemRemoteElementAdapter, ISystemOutpu
/**
* Returns true if the element is a remote command and false if it is a remote output.
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
if (element instanceof IRemoteCommandShell)
{
diff --git a/rse/plugins/org.eclipse.rse.subsystems.shells.core/src/org/eclipse/rse/subsystems/shells/core/model/RemoteCommandShellOperation.java b/rse/plugins/org.eclipse.rse.subsystems.shells.core/src/org/eclipse/rse/subsystems/shells/core/model/RemoteCommandShellOperation.java
index b93c5c971c6..f87b2363153 100644
--- a/rse/plugins/org.eclipse.rse.subsystems.shells.core/src/org/eclipse/rse/subsystems/shells/core/model/RemoteCommandShellOperation.java
+++ b/rse/plugins/org.eclipse.rse.subsystems.shells.core/src/org/eclipse/rse/subsystems/shells/core/model/RemoteCommandShellOperation.java
@@ -20,6 +20,7 @@ import java.util.Random;
import java.util.Stack;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.rse.core.SystemBasePlugin;
import org.eclipse.rse.model.ISystemResourceChangeEvent;
import org.eclipse.rse.model.ISystemResourceChangeEvents;
@@ -104,7 +105,7 @@ public abstract class RemoteCommandShellOperation implements ISystemResourceChan
try
{
RSEUIPlugin.getTheSystemRegistry().addSystemResourceChangeListener(this);
- _remoteCmdShell = _cmdSubSystem.runShell( _pwd);
+ _remoteCmdShell = _cmdSubSystem.runShell(new NullProgressMonitor(), _pwd);
}
catch (Exception e)
{
@@ -136,7 +137,7 @@ public abstract class RemoteCommandShellOperation implements ISystemResourceChan
{
try
{
- _cmdSubSystem.cancelShell( _remoteCmdShell);
+ _cmdSubSystem.cancelShell(new NullProgressMonitor(), _remoteCmdShell);
}
catch (Exception e)
{
@@ -182,7 +183,7 @@ public abstract class RemoteCommandShellOperation implements ISystemResourceChan
// echo command appended after ; so that
// it isn't treated like stdin for the intial command
- _cmdSubSystem.sendCommandToShell(cmd + _cmdSeparator + echoCmd, _remoteCmdShell);
+ _cmdSubSystem.sendCommandToShell(new NullProgressMonitor(), cmd + _cmdSeparator + echoCmd, _remoteCmdShell);
}
catch (Exception e)
@@ -203,7 +204,7 @@ public abstract class RemoteCommandShellOperation implements ISystemResourceChan
{
try
{
- _cmdSubSystem.sendCommandToShell(input, _remoteCmdShell);
+ _cmdSubSystem.sendCommandToShell(new NullProgressMonitor(), input, _remoteCmdShell);
}
catch (Exception e)
diff --git a/rse/plugins/org.eclipse.rse.subsystems.shells.core/src/org/eclipse/rse/subsystems/shells/core/subsystems/IRemoteCmdSubSystem.java b/rse/plugins/org.eclipse.rse.subsystems.shells.core/src/org/eclipse/rse/subsystems/shells/core/subsystems/IRemoteCmdSubSystem.java
index b63c5c0d482..bb06f587beb 100644
--- a/rse/plugins/org.eclipse.rse.subsystems.shells.core/src/org/eclipse/rse/subsystems/shells/core/subsystems/IRemoteCmdSubSystem.java
+++ b/rse/plugins/org.eclipse.rse.subsystems.shells.core/src/org/eclipse/rse/subsystems/shells/core/subsystems/IRemoteCmdSubSystem.java
@@ -40,47 +40,8 @@ public interface IRemoteCmdSubSystem extends ISubSystem{
*/
public IRemoteCmdSubSystemConfiguration getParentRemoteCmdSubSystemConfiguration();
- /**
- * Execute a remote command. This is only applicable if the subsystem factory reports
- * true for supportsCommands().
- * @param command Command to be executed remotely.
- * @param context context of a command (i.e. working directory). Null is valid and means to run the
- * command as a shell command in the default shell.
- * @return Array of objects that are the result of running this command. Typically, these
- * are messages logged by the command.
- * @see org.eclipse.rse.shells.ui.RemoteCommandHelpers
- *
- * @deprecated use runCommand(IProgressMonitor monitor, String command, Object context)
- */
- public Object[] runCommand(String command, Object context) throws Exception;
-
- /**
- * Execute a remote command. This is only applicable if the subsystem factory reports
- * true for supportsCommands().
- * @param command Command to be executed remotely.
- * @param context context of a command (i.e. working directory). Null is valid and means to run the
- * command as a shell command in the default shell.
- * @param interpretOutput whether to interpret the output or not
- * @return Array of objects that are the result of running this command. Typically, these
- * are messages logged by the command.
- * @see org.eclipse.rse.shells.ui.RemoteCommandHelpers
- *
- * @deprecated use runCommand(IProgressMonitor monitor, String command, Object conecxt, boolean interpretOutput)
- */
- public Object[] runCommand(String command, Object context, boolean interpretOutput) throws Exception;
- /**
- * Launch a new command shell. This is only applicable if the subsystem factory reports
- * true for supportsCommands().
- * @param context context of a shell (i.e. working directory). Null is valid and means to use the default context.
- * @return An object that represents the command and it's output.
- * @see org.eclipse.rse.shells.ui.RemoteCommandHelpers
- *
- * @deprecated use runShell(IProgressMonitor monitor, Object context)
- */
- public IRemoteCommandShell runShell(Object context) throws Exception;
-
/**
* Execute a remote command. This is only applicable if the subsystem factory reports
@@ -91,7 +52,6 @@ public interface IRemoteCmdSubSystem extends ISubSystem{
* command as a shell command in the default shell.
* @return Array of objects that are the result of running this command. Typically, these
* are messages logged by the command.
- * @see org.eclipse.rse.shells.ui.RemoteCommandHelpers
*/
public Object[] runCommand(IProgressMonitor monitor, String command, Object context) throws Exception;
@@ -105,7 +65,6 @@ public interface IRemoteCmdSubSystem extends ISubSystem{
* @param interpretOutput whether to interpret the output or not
* @return Array of objects that are the result of running this command. Typically, these
* are messages logged by the command.
- * @see org.eclipse.rse.shells.ui.RemoteCommandHelpers
*/
public Object[] runCommand(IProgressMonitor monitor, String command, Object context, boolean interpretOutput) throws Exception;
@@ -116,7 +75,6 @@ public interface IRemoteCmdSubSystem extends ISubSystem{
* @param monitor the progress monitor
* @param context context of a shell (i.e. working directory). Null is valid and means to use the default context.
* @return An object that represents the command and it's output.
- * @see org.eclipse.rse.shells.ui.RemoteCommandHelpers
*
*/
public IRemoteCommandShell runShell(IProgressMonitor monitor, Object context) throws Exception;
@@ -125,7 +83,6 @@ public interface IRemoteCmdSubSystem extends ISubSystem{
* Send a command as input to a running command shell.
* @param input the command to invoke in the shell.
* @param commandObject the shell or command to send the invocation to.
- * @see org.eclipse.rse.shells.ui.RemoteCommandHelpers
*
* @deprecated use sendCommandToShell(IProgressMonitor, String input, Object commmandObject)
*/
@@ -136,17 +93,9 @@ public interface IRemoteCmdSubSystem extends ISubSystem{
* @param monitor the progress monitor
* @param input the command to invoke in the shell.
* @param commandObject the shell or command to send the invocation to.
- * @see org.eclipse.rse.shells.ui.RemoteCommandHelpers
*/
public void sendCommandToShell(IProgressMonitor monitor, String input, Object commandObject) throws Exception;
- /**
- * Cancel a shell or running command.
- * @param commandObject the shell or command to cancel.
- *
- * @deprecated use cancelShell(IProgressMonitor monitor, Object commandObject)
- */
- public void cancelShell(Object commandObject) throws Exception;
/**
* Cancel a shell or running command.
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemSelectRemoteObjectAPIProviderImpl.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemSelectRemoteObjectAPIProviderImpl.java
index 08d4814a404..2f21c39bb61 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemSelectRemoteObjectAPIProviderImpl.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemSelectRemoteObjectAPIProviderImpl.java
@@ -373,7 +373,7 @@ public class SystemSelectRemoteObjectAPIProviderImpl
else if (filterString != null)
hasroots = true;
else
- hasroots = subsystemAdapter.hasChildren(subsystem);
+ hasroots = subsystemAdapter.hasChildren((IAdaptable)subsystem);
return hasroots;
}
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemTableTreeViewProvider.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemTableTreeViewProvider.java
index 2a690db8f9c..3e4c2ede24d 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemTableTreeViewProvider.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemTableTreeViewProvider.java
@@ -145,7 +145,7 @@ public class SystemTableTreeViewProvider implements ILabelProvider, ITableLabelP
ISystemViewElementAdapter adapter = getAdapterFor(object);
if (adapter != null)
{
- return adapter.hasChildren(object);
+ return adapter.hasChildren((IAdaptable)object);
}
if (manager != null) {
if (manager.isDeferredAdapter(object))
@@ -205,7 +205,7 @@ public class SystemTableTreeViewProvider implements ILabelProvider, ITableLabelP
- if (adapter.hasChildren(element))
+ if (adapter.hasChildren((IAdaptable)element))
{
if (supportsDeferredQueries())
{
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemTableViewPart.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemTableViewPart.java
index 10771ee2039..c67875155dc 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemTableViewPart.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemTableViewPart.java
@@ -1245,7 +1245,7 @@ public class SystemTableViewPart extends ViewPart implements ISelectionListener,
{
alreadyHandled = adapter.handleDoubleClick(element);
- if (!alreadyHandled && adapter.hasChildren(element))
+ if (!alreadyHandled && adapter.hasChildren((IAdaptable)element))
{
setInput((IAdaptable) 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 f34a8f8bea9..8c588752af2 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
@@ -294,7 +294,7 @@ public class SystemViewConnectionAdapter
/**
* Return true if this object has children
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
IHost conn = (IHost)element;
return getInput().hasConnectionChildren(conn);
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 c3011290dc7..31e22641f22 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
@@ -219,7 +219,7 @@ public class SystemViewFilterAdapter extends AbstractSystemViewAdapter implement
}
// otherwise, get children and then cache
else {
- children = checkForNull(ss.resolveFilterStrings(filterStrings), true);
+ children = checkForNull(ss.resolveFilterStrings(monitor, filterStrings), true);
if (ss.getSubSystemConfiguration().supportsFilterCaching()) {
simpleFilter.setContents(SystemChildrenContentsType.getInstance(), children);
@@ -332,7 +332,7 @@ public class SystemViewFilterAdapter extends AbstractSystemViewAdapter implement
/**
* Return true if this object has children
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
ISystemFilter filter = getFilter(element);
if (filter.getFilterStringCount() > 0)
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 436124c77bf..fa89c79b4b4 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
@@ -164,7 +164,7 @@ public class SystemViewFilterPoolAdapter extends AbstractSystemViewAdapter imple
/**
* Return true if this object has children. That is, has filters.
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
ISystemFilterPool fp = (ISystemFilterPool)element;
return fp.getSystemFilterCount() > 0;
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 5e227d044bd..d7c18d8ea5d 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
@@ -212,7 +212,7 @@ public class SystemViewFilterPoolReferenceAdapter
/**
* Return true if this object has children
*/
- public boolean hasChildren(Object element) {
+ public boolean hasChildren(IAdaptable element) {
int count = 0;
ISystemFilterPoolReference fpRef = getFilterPoolReference(element);
if (fpRef != null) {
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 6da73e4fdfc..bd35e1bef8f 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
@@ -431,7 +431,7 @@ public class SystemViewFilterReferenceAdapter
* Return true if this object has children.
* That is, if the referenced filter has nested filters or filter strings.
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
ISystemFilterReference fRef = getFilterReference(element);
ISystemFilter referencedFilter = fRef.getReferencedFilter();
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 2c1b5148846..58a0979bab7 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
@@ -161,7 +161,7 @@ public class SystemViewFilterStringAdapter extends AbstractSystemViewAdapter imp
/**
* Return true if this object has children. We return false;
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
return false;
}
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewLabelAndContentProvider.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewLabelAndContentProvider.java
index 5c5e1e4dcce..23f349c648b 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewLabelAndContentProvider.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewLabelAndContentProvider.java
@@ -377,16 +377,22 @@ public class SystemViewLabelAndContentProvider extends LabelProvider
*/
public boolean hasChildren(Object element)
{
- //return getChildren(element).hasNext();
ISystemViewElementAdapter adapter = getAdapter(element);
- if (adapter != null)
+ if (element instanceof IContextObject)
{
- return adapter.hasChildren(element);
+ return adapter.hasChildren((IContextObject)element);
+ }
+ else
+ {
+ if (adapter != null)
+ {
+ return adapter.hasChildren((IAdaptable)element);
+ }
+ if (manager != null) {
+ if (manager.isDeferredAdapter(element))
+ return manager.mayHaveChildren(element);
+ }
}
- if (manager != null) {
- if (manager.isDeferredAdapter(element))
- return manager.mayHaveChildren(element);
- }
return false;
}
/**
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 d7981d07754..2a9897d0581 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
@@ -112,7 +112,7 @@ public class SystemViewMessageAdapter
/**
* Return true if this object has children. Always false for us.
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
return false;
}
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 b9fd7ec53cb..11ee614d494 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
@@ -116,7 +116,7 @@ public class SystemViewPromptableAdapter
* Return true if this object has children.
* We return true, as either we'll expand and prompt, or expand and show child prompts
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
return true;
}
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 4199b3edf6d..f2aaca475bf 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
@@ -133,7 +133,7 @@ public class SystemViewRootInputAdapter extends AbstractSystemViewAdapter implem
/**
* Return true if this object has children
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
ISystemViewInputProvider provider = (ISystemViewInputProvider)element;
if ((provider instanceof ISystemRegistry) && showNewConnectionPrompt())
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 ed39a9ae821..aaf8b21f96a 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
@@ -117,7 +117,7 @@ public class SystemViewScratchpadAdapter extends AbstractSystemViewAdapter imple
/**
* Return true if this object has children
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
SystemScratchpad pad = (SystemScratchpad)element;
return pad.hasChildren();
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 79297613861..c683f17b312 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
@@ -181,7 +181,7 @@ public class SystemViewSubSystemAdapter extends AbstractSystemViewAdapter
/**
* Return true if this object has children
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
//System.out.println("INSIDE HASCHILDREN FOR SUBSYSTEM VIEW ADAPTER: "+element);
ISubSystem ss = (ISubSystem)element;
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/SystemScratchpadViewPart.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/SystemScratchpadViewPart.java
index 6054c1eaeed..0e2a006c9c6 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/SystemScratchpadViewPart.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/SystemScratchpadViewPart.java
@@ -179,7 +179,7 @@ public class SystemScratchpadViewPart extends ViewPart implements ISelectionList
if (adapter != null)
{
- if (adapter.hasChildren(element))
+ if (adapter.hasChildren((IAdaptable)element))
{
setInput((IAdaptable) element);
}
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/SystemScratchpadViewProvider.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/SystemScratchpadViewProvider.java
index 1cfad2e51e4..818eabe0372 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/SystemScratchpadViewProvider.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/SystemScratchpadViewProvider.java
@@ -82,10 +82,18 @@ public class SystemScratchpadViewProvider implements ILabelProvider, ITreeConten
public boolean hasChildren(Object object)
{
+
ISystemViewElementAdapter adapter = getAdapterFor(object);
if (adapter != null)
{
- return adapter.hasChildren(object);
+ if (object instanceof IContextObject)
+ {
+ return adapter.hasChildren((IContextObject)object);
+ }
+ else
+ {
+ return adapter.hasChildren((IAdaptable)object);
+ }
}
else if (object instanceof IAdaptable)
{
@@ -104,6 +112,10 @@ public class SystemScratchpadViewProvider implements ILabelProvider, ITreeConten
protected ISystemViewElementAdapter getAdapterFor(Object object)
{
+ if (object instanceof IContextObject)
+ {
+ object = ((IContextObject)object).getModelObject();
+ }
if (object instanceof IAdaptable)
{
IAdaptable adapt = (IAdaptable) object;
@@ -130,7 +142,7 @@ public class SystemScratchpadViewProvider implements ILabelProvider, ITreeConten
if (element instanceof IAdaptable)
{
ISystemViewElementAdapter adapter = getAdapterFor(element);
- if (adapter != null && adapter.hasChildren(element))
+ if (adapter != null && adapter.hasChildren((IAdaptable)element))
{
if (object instanceof IContextObject)
{
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/search/SystemSearchViewContentProvider.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/search/SystemSearchViewContentProvider.java
index 46b2e02e836..49e7cc3e179 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/search/SystemSearchViewContentProvider.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/search/SystemSearchViewContentProvider.java
@@ -102,7 +102,7 @@ public class SystemSearchViewContentProvider implements ITreeContentProvider {
return false;
}
else {
- return adapter.hasChildren(element);
+ return adapter.hasChildren((IAdaptable)element);
}
}
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 b1907063948..4a2db5ec08f 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
@@ -203,7 +203,7 @@ public class SystemTeamViewCategoryAdapter
/**
* Return true if this profile has children. We return true.
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
return true;
}
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewContentProvider.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewContentProvider.java
index cdafcf3327a..1f986b684c5 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewContentProvider.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewContentProvider.java
@@ -27,6 +27,7 @@ import org.eclipse.rse.core.SystemResourceManager;
import org.eclipse.rse.core.model.ISystemProfile;
import org.eclipse.rse.model.ISystemResourceChangeListener;
import org.eclipse.rse.ui.RSEUIPlugin;
+import org.eclipse.rse.ui.view.IContextObject;
import org.eclipse.rse.ui.view.ISystemViewElementAdapter;
import org.eclipse.rse.ui.view.ISystemViewInputProvider;
import org.eclipse.swt.widgets.Shell;
@@ -104,6 +105,10 @@ public class SystemTeamViewContentProvider extends WorkbenchContentProvider
*/
public boolean hasChildren(Object element)
{
+ if (element instanceof IContextObject)
+ {
+ element = ((IContextObject)element).getModelObject();
+ }
boolean children = false;
if (element instanceof IProject)
children = (getChildren(element).length > 0);
@@ -111,7 +116,7 @@ public class SystemTeamViewContentProvider extends WorkbenchContentProvider
{
ISystemViewElementAdapter adapter = getSystemViewAdapter(element);
if (adapter != null)
- children = adapter.hasChildren(element);
+ children = adapter.hasChildren((IAdaptable)element);
else
children = super.hasChildren(element);
}
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 9810d0ce0bf..0227a29375c 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
@@ -278,7 +278,7 @@ public class SystemTeamViewProfileAdapter
/**
* Return true if this profile has children. We return true.
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
return true;
}
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 b09a397adbd..dbe84d8bbef 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
@@ -212,7 +212,7 @@ public class SystemTeamViewSubSystemConfigurationAdapter
/**
* Return true if this profile has children. We return true.
*/
- public boolean hasChildren(Object element)
+ public boolean hasChildren(IAdaptable element)
{
SystemTeamViewSubSystemConfigurationNode ssConfNode = (SystemTeamViewSubSystemConfigurationNode)element;
SystemTeamViewCategoryNode category = ssConfNode.getParentCategory();
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemCollapseAction.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemCollapseAction.java
index 0e889bd71e7..578944128e8 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemCollapseAction.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemCollapseAction.java
@@ -18,6 +18,7 @@ package org.eclipse.rse.ui.actions;
import java.util.Iterator;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.rse.model.ISystemResourceChangeEvents;
import org.eclipse.rse.model.ISystemResourceChangeListener;
@@ -62,7 +63,7 @@ public class SystemCollapseAction extends SystemBaseAction {
Object selectedObject = e.next();
adapter = getAdapter(selectedObject);
if (adapter != null) {
- if (adapter.hasChildren(selectedObject)) enable = true;
+ if (adapter.hasChildren((IAdaptable)selectedObject)) enable = true;
}
}
return enable;
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemExpandAction.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemExpandAction.java
index 0b2d18fdc3f..976e1dbd391 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemExpandAction.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemExpandAction.java
@@ -18,6 +18,7 @@ package org.eclipse.rse.ui.actions;
import java.util.Iterator;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.rse.model.ISystemResourceChangeEvents;
import org.eclipse.rse.model.ISystemResourceChangeListener;
@@ -65,7 +66,7 @@ public class SystemExpandAction extends SystemBaseAction {
Object selectedObject = e.next();
adapter = getAdapter(selectedObject);
if (adapter != null) {
- if (adapter.hasChildren(selectedObject)) enable = true;
+ if (adapter.hasChildren((IAdaptable)selectedObject)) enable = true;
}
}
return enable;
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemRefreshAction.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemRefreshAction.java
index e6ebc854d41..98f8db55fb9 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemRefreshAction.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemRefreshAction.java
@@ -18,6 +18,7 @@ package org.eclipse.rse.ui.actions;
import java.util.Iterator;
import java.util.Vector;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.rse.core.model.ISystemContainer;
import org.eclipse.rse.model.ISystemResourceChangeEvents;
@@ -91,7 +92,7 @@ public class SystemRefreshAction extends SystemBaseAction
if (adapter != null) {
Object parent = adapter.getParent(obj);
- boolean hasChildren = adapter.hasChildren(obj);
+ boolean hasChildren = adapter.hasChildren((IAdaptable)obj);
if ((parent != null) && !hasChildren && (!parents.contains(parent))) {
parents.add(parent);
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemShowInMonitorAction.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemShowInMonitorAction.java
index 8721df31fd1..cabebce95f2 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemShowInMonitorAction.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemShowInMonitorAction.java
@@ -91,7 +91,7 @@ public class SystemShowInMonitorAction extends SystemBaseAction
if (selected != null && selected instanceof IAdaptable)
{
ISystemViewElementAdapter va = (ISystemViewElementAdapter) ((IAdaptable) selected).getAdapter(ISystemViewElementAdapter.class);
- if (va.hasChildren(selected))
+ if (va.hasChildren((IAdaptable)selected))
{
_selected = selected;
enable = true;
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemShowInTableAction.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemShowInTableAction.java
index f8455ed04c6..745a3fd646d 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemShowInTableAction.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/actions/SystemShowInTableAction.java
@@ -90,7 +90,7 @@ public class SystemShowInTableAction extends SystemBaseAction
if (selected != null && selected instanceof IAdaptable)
{
ISystemViewElementAdapter va = (ISystemViewElementAdapter) ((IAdaptable) selected).getAdapter(ISystemViewElementAdapter.class);
- if (va.hasChildren(selected))
+ if (va.hasChildren((IAdaptable)selected))
{
_selected = selected;
enable = true;
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 6b3cb4954b7..3042d940624 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
@@ -450,8 +450,18 @@ public abstract class AbstractSystemViewAdapter
* Abstract. Must be overridden by subclasses.
* Return true if this object has children.
*/
- public abstract boolean hasChildren(Object element);
+ public abstract boolean hasChildren(IAdaptable element);
+ /**
+ * Override this to provide context-specific support
+ * @param element the context object
+ * @return whether the context has children
+ */
+ public boolean hasChildren(IContextObject element)
+ {
+ return hasChildren(element.getModelObject());
+ }
+
/**
* Implementation of IWorkbenchAdapter.getChildren(). Rather than overriding this, adapter implementors
* should override the getChildren() methods that take a monitor.
@@ -854,7 +864,6 @@ public abstract class AbstractSystemViewAdapter
* If true, then canDelete will be called to decide whether to enable delete or not.
*
By default, returns true. * @see #canDelete(Object) - * @see #doDelete(Shell,Object) */ public boolean showDelete(Object element) { @@ -867,7 +876,6 @@ public abstract class AbstractSystemViewAdapter *
* By default, returns false. Override if your object is deletable.
* @see #showDelete(Object)
- * @see #doDelete(Shell,Object)
*/
public boolean canDelete(Object element)
{
@@ -884,7 +892,7 @@ public abstract class AbstractSystemViewAdapter
*/
public boolean doDelete(Shell shell, Object element, IProgressMonitor monitor) throws Exception
{
- return doDelete(shell, element);
+ return false;
}
/**
@@ -904,19 +912,6 @@ public abstract class AbstractSystemViewAdapter
return ok;
}
- /**
- * Overridable by subclasses, and usually is.
- * Perform the delete action. By default does nothing. Override if your object is deletable.
- * Return true if this was successful. Return false if it failed and you issued a msg.
- * Throw an exception if it failed and you want to use the generic msg.
- * @see #showDelete(Object)
- * @see #canDelete(Object)
- * @deprecated use the one with the monitor
- */
- public boolean doDelete(Shell shell, Object element) throws Exception
- {
- return false;
- }
// ------------------------------------------
// METHODS TO SUPPORT COMMON RENAME ACTION...
@@ -1371,7 +1366,7 @@ public abstract class AbstractSystemViewAdapter
return value.equals(getType(target));
else if (name.equalsIgnoreCase("hasChildren")) //$NON-NLS-1$
{
- return hasChildren(target) ? value.equals("true") : value.equals("false"); //$NON-NLS-1$ //$NON-NLS-2$
+ return hasChildren((IAdaptable)target) ? value.equals("true") : value.equals("false"); //$NON-NLS-1$ //$NON-NLS-2$
}
else if (name.equalsIgnoreCase("connected")) //$NON-NLS-1$
{
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/ISystemViewElementAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/ISystemViewElementAdapter.java
index 93c3be2e728..98799fe5fbf 100644
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/ISystemViewElementAdapter.java
+++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/ISystemViewElementAdapter.java
@@ -202,10 +202,17 @@ public interface ISystemViewElementAdapter extends IPropertySource, ISystemDragD
* Return the children of this object, using the given Expand-To filter
*/
public Object[] getChildrenUsingExpandToFilter(Object element, String expandToFilter);
+
+ /**
+ * Return true if this object has children
+ */
+ public boolean hasChildren(IAdaptable element);
+
/**
* Return true if this object has children
*/
- public boolean hasChildren(Object element);
+ public boolean hasChildren(IContextObject element);
+
/**
* Return true if this object is a "prompting" object that prompts the user when expanded.
* For such objects, we do not try to save and restore their expansion state on F5 or between
@@ -239,12 +246,7 @@ public interface ISystemViewElementAdapter extends IPropertySource, ISystemDragD
* the Edit->Delete menu item will be enabled.
*/
public boolean canDelete(Object element);
- /**
- * Perform the delete on the given item. This is after the user has been asked to confirm deletion.
- * @deprecated use the one with the monitor
- */
- public boolean doDelete(Shell shell, Object element)
- throws Exception;
+
/**
* Perform the delete on the given item. This is after the user has been asked to confirm deletion.
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 9b682283c48..80de59ebc73 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
@@ -116,7 +116,7 @@ public class TestSubSystemNodeAdapter extends AbstractSystemViewAdapter
/* (non-Javadoc)
* @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#hasChildren(java.lang.Object)
*/
- public boolean hasChildren(Object element) {
+ public boolean hasChildren(IAdaptable element) {
if (isTestSubSystemNodeContainer(element))
return ((ITestSubSystemNodeContainer)element).hasChildNodes();
return false;