From: Patrick Plitzner
Date: Tue, 31 May 2016 07:52:25 +0000 (+0200)
Subject: Add fallback to getView() if no active workbench is found #5758
X-Git-Tag: 4.1.0^2~7
X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/272fafc36bc87c8abcd0bd2dcba9127278936067
Add fallback to getView() if no active workbench is found #5758
---
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java
index e700d2e35..fdaa3e0c4 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java
@@ -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;
}