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();


Reply via email to