Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.osee.framework.ui.workspacebundleloader/src/org/eclipse/osee/framework/ui/workspacebundleloader/WorkspaceBundleLoadCoordinator.java')
-rw-r--r--plugins/org.eclipse.osee.framework.ui.workspacebundleloader/src/org/eclipse/osee/framework/ui/workspacebundleloader/WorkspaceBundleLoadCoordinator.java42
1 files changed, 30 insertions, 12 deletions
diff --git a/plugins/org.eclipse.osee.framework.ui.workspacebundleloader/src/org/eclipse/osee/framework/ui/workspacebundleloader/WorkspaceBundleLoadCoordinator.java b/plugins/org.eclipse.osee.framework.ui.workspacebundleloader/src/org/eclipse/osee/framework/ui/workspacebundleloader/WorkspaceBundleLoadCoordinator.java
index 53a8d29d5dc..5dd53e35f23 100644
--- a/plugins/org.eclipse.osee.framework.ui.workspacebundleloader/src/org/eclipse/osee/framework/ui/workspacebundleloader/WorkspaceBundleLoadCoordinator.java
+++ b/plugins/org.eclipse.osee.framework.ui.workspacebundleloader/src/org/eclipse/osee/framework/ui/workspacebundleloader/WorkspaceBundleLoadCoordinator.java
@@ -36,6 +36,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.WorkbenchException;
@@ -112,22 +113,24 @@ public class WorkspaceBundleLoadCoordinator {
}
-
- public synchronized void uninstallBundles(){
+ private void saveAndCloseViews(){
PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable(){
@Override
public void run() {
saveAndCloseManagedViews();
- for(BundleInfoLite info:managedArea.getInstalledBundles()){
- try {
- info.uninstall();
- } catch (BundleException e) {
- OseeLog.log(WorkspaceBundleLoadCoordinator.class, Level.WARNING, e);
- }
- }
}
});
-
+ }
+
+ public synchronized void uninstallBundles(){
+ saveAndCloseViews();
+ for(BundleInfoLite info:managedArea.getInstalledBundles()){
+ try {
+ info.uninstall();
+ } catch (BundleException e) {
+ OseeLog.log(WorkspaceBundleLoadCoordinator.class, Level.WARNING, e);
+ }
+ }
if(wiring != null){
wiring.refreshBundles(null);
}
@@ -137,8 +140,22 @@ public class WorkspaceBundleLoadCoordinator {
Set<String> managedViewIds = determineManagedViews();
IWorkbench workbench = PlatformUI.getWorkbench();
- if (managedArea.getInstalledBundles().size() > 0 && workbench != null && workbench.getActiveWorkbenchWindow() != null){
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ if (managedArea.getInstalledBundles().size() > 0 && workbench != null){
+ IWorkbenchPage page = null;
+ if(PlatformUI.getWorkbench().getActiveWorkbenchWindow() == null){
+ IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
+ for(IWorkbenchWindow win :windows){
+ page = win.getActivePage();
+ if(page != null){
+ break;
+ }
+ }
+ } else {
+ page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ }
+ if(page == null){
+ return;
+ }
IPerspectiveDescriptor originalPerspective = page.getPerspective();
XMLMemento memento = XMLMemento.createWriteRoot(TAG_OTE_PRECOMPILED);
//find the view in other perspectives
@@ -564,4 +581,5 @@ public class WorkspaceBundleLoadCoordinator {
}
}
}
+
}

Back to the top