1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-04 23:55:26 +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.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)

View file

@ -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);

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.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;