From d08769453a036019514bdb8865104d0d853ba38d Mon Sep 17 00:00:00 2001 From: David McKnight Date: Fri, 13 Jul 2007 20:26:41 +0000 Subject: [PATCH] delete the goto job to allow for download completion beforehand --- .../SystemViewRemoteSearchResultAdapter.java | 35 ++++++++++++++++++- .../view/SystemViewRemoteOutputAdapter.java | 9 +++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteSearchResultAdapter.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteSearchResultAdapter.java index 3270ea1ec1c..3158ddf2e40 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteSearchResultAdapter.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteSearchResultAdapter.java @@ -27,6 +27,9 @@ import java.util.List; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IAdaptable; 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.jface.action.MenuManager; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.IStructuredSelection; @@ -69,6 +72,33 @@ import org.eclipse.ui.views.properties.PropertyDescriptor; */ public class SystemViewRemoteSearchResultAdapter extends AbstractSystemViewAdapter implements ISystemRemoteElementAdapter { + + public class DelayedGotoSearchResultJob extends Job + { + private DelayedGotoSearchResult _gotoLine; + public DelayedGotoSearchResultJob(DelayedGotoSearchResult gotoLine) + { + super("Goto Line"); + _gotoLine = gotoLine; + } + + public IStatus run(IProgressMonitor monitor) + { + try + { + // wait for a bit so that download can complete - otherwise + // we could end up spawning this job too frequently + Thread.sleep(1000); + } + catch (Exception e) + { + } + PlatformUI.getWorkbench().getDisplay().asyncExec(_gotoLine); + return Status.OK_STATUS; + } + } + + public class DelayedGotoSearchResult implements Runnable { private IRemoteFile _file; @@ -85,7 +115,8 @@ public class SystemViewRemoteSearchResultAdapter extends AbstractSystemViewAdapt SystemRemoteFileSearchOpenWithMenu.handleGotoLine(_file, _searchResult); } else { - Display.getDefault().asyncExec(this); + DelayedGotoSearchResultJob job = new DelayedGotoSearchResultJob(this); + job.schedule(); } } @@ -294,6 +325,8 @@ public class SystemViewRemoteSearchResultAdapter extends AbstractSystemViewAdapt return result; } + + /** * Returns the associated subsystem for this search result */ diff --git a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemViewRemoteOutputAdapter.java b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemViewRemoteOutputAdapter.java index 80867ebc24f..0770785db9d 100644 --- a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemViewRemoteOutputAdapter.java +++ b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemViewRemoteOutputAdapter.java @@ -597,6 +597,15 @@ implements ISystemViewElementAdapter, ISystemRemoteElementAdapter public IStatus run(IProgressMonitor monitor) { + try + { + // wait for a bit so that download can complete - otherwise + // we could end up spawning this job too frequently + Thread.sleep(1000); + } + catch (Exception e) + { + } PlatformUI.getWorkbench().getDisplay().asyncExec(_gotoLine); return Status.OK_STATUS; }