Author: dsavage
Date: Thu Sep 9 01:40:22 2010
New Revision: 995292
URL: http://svn.apache.org/viewvc?rev=995292&view=rev
Log:
provide utility method to run workspace op in status bar vs pop up dialog
Modified:
felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/SigilUI.java
Modified:
felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/SigilUI.java
URL:
http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/SigilUI.java?rev=995292&r1=995291&r2=995292&view=diff
==============================================================================
---
felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/SigilUI.java
(original)
+++
felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/eclipse/ui/SigilUI.java
Thu Sep 9 01:40:22 2010
@@ -35,6 +35,7 @@ import org.eclipse.swt.graphics.ImageDat
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
@@ -149,6 +150,27 @@ public class SigilUI extends AbstractUIP
}
}
+ public static void runWorkspaceOperationSync(IRunnableWithProgress op)
throws CoreException
+ {
+ try
+ {
+ PlatformUI.getWorkbench().getActiveWorkbenchWindow().run(false,
true, op);
+ }
+ catch (InvocationTargetException e)
+ {
+ if (e.getCause() instanceof CoreException) {
+ throw (CoreException) e.getCause();
+ }
+ else {
+ throw SigilCore.newCoreException("Failed to execute task",
e.getCause());
+ }
+ }
+ catch (InterruptedException e1)
+ {
+ SigilCore.log("Workspace operation interrupted");
+ }
+ }
+
public static IWorkbenchWindow getActiveWorkbenchWindow()
{
return getDefault().getWorkbench().getActiveWorkbenchWindow();