1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-25 18:05:33 +02:00

fix for 162993

This commit is contained in:
David McKnight 2006-11-07 18:39:12 +00:00
parent 3a92aa6a5d
commit 3b422f0d1e
3 changed files with 35 additions and 7 deletions

View file

@ -21,6 +21,8 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.subsystems.ISubSystem; import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.model.ISystemRemoteChangeEvents; 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.SystemMessage;
import org.eclipse.rse.services.clientserver.messages.SystemMessageException; import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile; import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
@ -95,12 +97,15 @@ public class SystemMoveRemoteFileAction extends SystemCopyRemoteFileAction
{ {
String sep = targetFolder.getSeparator(); String sep = targetFolder.getSeparator();
String targetFolderName = targetFolder.getAbsolutePath(); String targetFolderName = targetFolder.getAbsolutePath();
String resultPath = null;
if (!targetFolderName.endsWith(sep)) if (!targetFolderName.endsWith(sep))
copiedFiles.addElement(targetFolderName+sep+newName); resultPath = targetFolderName+sep+newName;
else else
copiedFiles.addElement(targetFolderName+newName); resultPath = targetFolderName+newName;
movedFiles.addElement(srcFileOrFolder); copiedFiles.addElement(resultPath);
movedFiles.add(srcFileOrFolder);
} }
return ok; return ok;
@ -154,7 +159,8 @@ public class SystemMoveRemoteFileAction extends SystemCopyRemoteFileAction
// ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_DELETED, copiedFiles, firstSelectionParent.getAbsolutePath(), fileSS, null, null); // ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_DELETED, copiedFiles, firstSelectionParent.getAbsolutePath(), fileSS, null, null);
RSEUIPlugin.getTheSystemRegistry().fireRemoteResourceChangeEvent( RSEUIPlugin.getTheSystemRegistry().fireRemoteResourceChangeEvent(
ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_DELETED, movedFiles, firstSelectionParent.getAbsolutePath(), fileSS, null, null); ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_DELETED, movedFiles, firstSelectionParent.getAbsolutePath(), fileSS, null, null);
/* old release 1.0 way of doing it... /* old release 1.0 way of doing it...
Viewer v = getViewer(); Viewer v = getViewer();
if (v instanceof ISystemTree) if (v instanceof ISystemTree)

View file

@ -1054,6 +1054,10 @@ public class DStoreFileService extends AbstractDStoreService implements IFileSer
DataElement srcDE = getElementFor(srcRemotePath); DataElement srcDE = getElementFor(srcRemotePath);
DataElement tgtDE = getElementFor(tgtParent); 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); DataElement cpCmd = getCommandDescriptor(tgtDE, C_COPY);

View file

@ -34,6 +34,7 @@ import org.eclipse.rse.core.filters.ISystemFilterPoolManager;
import org.eclipse.rse.core.filters.ISystemFilterPoolReference; import org.eclipse.rse.core.filters.ISystemFilterPoolReference;
import org.eclipse.rse.core.filters.ISystemFilterReference; import org.eclipse.rse.core.filters.ISystemFilterReference;
import org.eclipse.rse.core.model.IHost; 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.ISystemMessageObject;
import org.eclipse.rse.core.model.ISystemResourceSet; import org.eclipse.rse.core.model.ISystemResourceSet;
import org.eclipse.rse.core.model.SystemChildrenContentsType; import org.eclipse.rse.core.model.SystemChildrenContentsType;
@ -345,15 +346,32 @@ public class SystemViewFilterReferenceAdapter
} }
} }
boolean doQuery = true;
if (!referencedFilter.isTransient() && if (!referencedFilter.isTransient() &&
ssf.supportsFilterCaching() && ssf.supportsFilterCaching() &&
!fRef.isStale() && !fRef.isStale() &&
fRef.hasContents(SystemChildrenContentsType.getInstance())) fRef.hasContents(SystemChildrenContentsType.getInstance()))
{ {
doQuery = false;
children = fRef.getContents(SystemChildrenContentsType.getInstance()); 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; Object[] allChildren = null;