Add fallback to getView() if no active workbench is found #5758
authorPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 31 May 2016 07:52:25 +0000 (09:52 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 31 May 2016 07:52:25 +0000 (09:52 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java

index e700d2e3563aab8333e265b65131eb35c793d774..fdaa3e0c4c93183bbc737988647e414f6caef12c 100644 (file)
@@ -50,6 +50,7 @@ import org.eclipse.ui.IViewReference;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.handlers.IHandlerService;
@@ -216,13 +217,22 @@ public abstract class AbstractUtility {
      * @return a {@link org.eclipse.ui.IViewPart} object.
      */
     public static IViewPart getView(String id, boolean restore) {
-        IViewReference[] references = PlatformUI.getWorkbench()
-                .getActiveWorkbenchWindow().getActivePage().getViewReferences();
-        for (IViewReference reference : references) {
-            if (reference.getId().equals(id)) {
-                return reference.getView(restore);
-            }
-        }
+       IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+       IViewReference[] references = null;
+       if(activeWorkbenchWindow!=null){
+               references = PlatformUI.getWorkbench()
+                               .getActiveWorkbenchWindow().getActivePage().getViewReferences();
+       }
+       else if(PlatformUI.getWorkbench().getWorkbenchWindows().length>0){
+               references = PlatformUI.getWorkbench().getWorkbenchWindows()[0].getActivePage().getViewReferences();
+       }
+       if(references!=null){
+               for (IViewReference reference : references) {
+                       if (reference.getId().equals(id)) {
+                               return reference.getView(restore);
+                       }
+               }
+       }
         return null;
     }