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:
parent
3a92aa6a5d
commit
3b422f0d1e
3 changed files with 35 additions and 7 deletions
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue