diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/DownloadJob.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/DownloadJob.java index ef24b5b707e..98cc7b2bd6c 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/DownloadJob.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/DownloadJob.java @@ -3,10 +3,12 @@ */ package org.eclipse.rse.files.ui.view; +import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.rse.files.ui.resources.SystemUniversalTempFileListener; import org.eclipse.rse.ui.view.ISystemEditableRemoteObject; import org.eclipse.swt.widgets.Display; @@ -47,7 +49,11 @@ public class DownloadJob extends Job { try { - _editable.download(monitor); + IFile localFile = _editable.getLocalResource(); + SystemUniversalTempFileListener listener = SystemUniversalTempFileListener.getListener(); + listener.addIgnoreFile(localFile); + _editable.download(monitor); + listener.removeIgnoreFile(localFile); } catch (Exception e) { diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteFileAdapter.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteFileAdapter.java index 1bdd36d53f8..e27c2c3617b 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteFileAdapter.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/view/SystemViewRemoteFileAdapter.java @@ -131,6 +131,7 @@ import org.eclipse.ui.ISharedImages; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.progress.IElementCollector; +import org.eclipse.ui.progress.UIJob; import org.eclipse.ui.views.properties.IPropertyDescriptor; import org.eclipse.ui.views.properties.PropertyDescriptor; @@ -2735,7 +2736,8 @@ public class SystemViewRemoteFileAdapter { if (editable.checkOpenInEditor() != ISystemEditableRemoteObject.OPEN_IN_SAME_PERSPECTIVE) { - editable.open(getShell()); + DownloadJob oJob = new DownloadJob(editable); + oJob.schedule(); } else { @@ -2746,6 +2748,8 @@ public class SystemViewRemoteFileAdapter catch (Exception e) { } + + } else if (remoteFile.isDirectory()) { @@ -2761,7 +2765,7 @@ public class SystemViewRemoteFileAdapter return false; } } - + public boolean canEdit(Object element) { IRemoteFile remoteFile = (IRemoteFile) element; diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/ISystemEditableRemoteObject.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/ISystemEditableRemoteObject.java index fa8355e2ecb..74cabea5162 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/ISystemEditableRemoteObject.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/ISystemEditableRemoteObject.java @@ -107,6 +107,15 @@ public interface ISystemEditableRemoteObject */ public void open(Shell shell, boolean readOnly); + /** + * Open in editor + */ + public void open(IProgressMonitor monitor); + + /** + * Open in editor + */ + public void open(IProgressMonitor monitor, boolean readOnly); /** * Set local resource properties diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemViewDataDragAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemViewDataDragAdapter.java index a537bea8cd7..816e56ac8ef 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemViewDataDragAdapter.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemViewDataDragAdapter.java @@ -288,6 +288,7 @@ public class SystemViewDataDragAdapter extends DragSourceAdapter { try { + Shell shell = event.display.getActiveShell(); if (editable.download(shell)) {