From d8c46828d727b4d256f6365044900bb109c48a02 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Tue, 23 May 2006 16:18:43 +0000 Subject: [PATCH] support for filter references as target of move/copy actions. Defect 142309 --- .../ui/actions/SystemCopyRemoteFileAction.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/actions/SystemCopyRemoteFileAction.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/actions/SystemCopyRemoteFileAction.java index f308a0a4972..261a105dc77 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/actions/SystemCopyRemoteFileAction.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/actions/SystemCopyRemoteFileAction.java @@ -25,8 +25,11 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.Viewer; import org.eclipse.rse.core.SystemBasePlugin; import org.eclipse.rse.core.subsystems.ISubSystem; +import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; import org.eclipse.rse.files.ui.dialogs.SystemRemoteFolderDialog; import org.eclipse.rse.files.ui.resources.SystemRemoteEditManager; +import org.eclipse.rse.filters.ISystemFilterReference; +import org.eclipse.rse.filters.SystemFilterReference; import org.eclipse.rse.model.IHost; import org.eclipse.rse.model.ISystemRemoteChangeEvents; import org.eclipse.rse.services.clientserver.messages.SystemMessage; @@ -133,6 +136,9 @@ public class SystemCopyRemoteFileAction extends SystemBaseCopyAction String newName = oldName; try { + + + targetFolder = (IRemoteFile)targetContainer; ss = targetFolder.getParentRemoteFileSubSystem(); targetFileOrFolder = ss.getRemoteFileObject(targetFolder, oldName); @@ -368,7 +374,18 @@ public class SystemCopyRemoteFileAction extends SystemBaseCopyAction SystemRemoteFolderDialog cpyDlg = (SystemRemoteFolderDialog)dlg; Object targetContainer = null; if (!cpyDlg.wasCancelled()) + { targetContainer = cpyDlg.getSelectedObject(); + if (targetContainer instanceof ISystemFilterReference) + { + ISubSystem targetSubSystem = ((ISystemFilterReference)targetContainer).getSubSystem(); + ISubSystemConfiguration factory = targetSubSystem.getSubSystemConfiguration(); + if (factory.supportsDropInFilters()) + { + targetContainer = targetSubSystem.getTargetForFilter((ISystemFilterReference)targetContainer); + } + } + } return targetContainer; }