diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/actions/SystemMoveRemoteFileAction.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/actions/SystemMoveRemoteFileAction.java index 1048b6b38b8..72c445bdb09 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/actions/SystemMoveRemoteFileAction.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/actions/SystemMoveRemoteFileAction.java @@ -21,6 +21,8 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.subsystems.ISubSystem; import org.eclipse.rse.model.ISystemRemoteChangeEvents; +import org.eclipse.rse.model.ISystemResourceChangeEvents; +import org.eclipse.rse.model.SystemResourceChangeEvent; import org.eclipse.rse.services.clientserver.messages.SystemMessage; import org.eclipse.rse.services.clientserver.messages.SystemMessageException; import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile; @@ -95,12 +97,15 @@ public class SystemMoveRemoteFileAction extends SystemCopyRemoteFileAction { String sep = targetFolder.getSeparator(); String targetFolderName = targetFolder.getAbsolutePath(); + String resultPath = null; + if (!targetFolderName.endsWith(sep)) - copiedFiles.addElement(targetFolderName+sep+newName); + resultPath = targetFolderName+sep+newName; else - copiedFiles.addElement(targetFolderName+newName); - - movedFiles.addElement(srcFileOrFolder); + resultPath = targetFolderName+newName; + + copiedFiles.addElement(resultPath); + movedFiles.add(srcFileOrFolder); } return ok; @@ -154,7 +159,8 @@ public class SystemMoveRemoteFileAction extends SystemCopyRemoteFileAction // ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_DELETED, copiedFiles, firstSelectionParent.getAbsolutePath(), fileSS, null, null); RSEUIPlugin.getTheSystemRegistry().fireRemoteResourceChangeEvent( ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_DELETED, movedFiles, firstSelectionParent.getAbsolutePath(), fileSS, null, null); - + + /* old release 1.0 way of doing it... Viewer v = getViewer(); if (v instanceof ISystemTree) diff --git a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/files/DStoreFileService.java b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/files/DStoreFileService.java index 13ee8baae1d..61de4720eee 100644 --- a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/files/DStoreFileService.java +++ b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/files/DStoreFileService.java @@ -1054,6 +1054,10 @@ public class DStoreFileService extends AbstractDStoreService implements IFileSer DataElement srcDE = getElementFor(srcRemotePath); DataElement tgtDE = getElementFor(tgtParent); + if (tgtDE.getType().equals(IUniversalDataStoreConstants.UNIVERSAL_FILTER_DESCRIPTOR)) + { + dsQueryCommand(monitor, tgtDE, C_QUERY_GET_REMOTE_OBJECT); + } DataElement cpCmd = getCommandDescriptor(tgtDE, C_COPY); diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemViewFilterReferenceAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemViewFilterReferenceAdapter.java index b5edfcd4544..e76b31d3404 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemViewFilterReferenceAdapter.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemViewFilterReferenceAdapter.java @@ -34,6 +34,7 @@ import org.eclipse.rse.core.filters.ISystemFilterPoolManager; import org.eclipse.rse.core.filters.ISystemFilterPoolReference; import org.eclipse.rse.core.filters.ISystemFilterReference; import org.eclipse.rse.core.model.IHost; +import org.eclipse.rse.core.model.ISystemContainer; import org.eclipse.rse.core.model.ISystemMessageObject; import org.eclipse.rse.core.model.ISystemResourceSet; import org.eclipse.rse.core.model.SystemChildrenContentsType; @@ -345,15 +346,32 @@ public class SystemViewFilterReferenceAdapter } } - + boolean doQuery = true; if (!referencedFilter.isTransient() && ssf.supportsFilterCaching() && !fRef.isStale() && fRef.hasContents(SystemChildrenContentsType.getInstance())) { + doQuery = false; children = fRef.getContents(SystemChildrenContentsType.getInstance()); + if (children != null) + { + // check for stale children + for (int i = 0; i < children.length && !doQuery; i++) + { + Object child = children[i]; + if (child instanceof ISystemContainer) + { + if (((ISystemContainer)child).isStale()) + { + doQuery = true; + fRef.markStale(true); + } + } + } + } } - else + if (doQuery) { Object[] allChildren = null;