-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- * VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.ui.workbench;\r
-\r
-import java.util.List;\r
-\r
-import org.eclipse.swt.widgets.Menu;\r
-import org.eclipse.ui.IPerspectiveDescriptor;\r
-import org.eclipse.ui.IPerspectiveListener4;\r
-import org.eclipse.ui.IWindowListener;\r
-\r
-import org.eclipse.ui.IWorkbenchPage;\r
-import org.eclipse.ui.IWorkbenchPartReference;\r
-import org.eclipse.ui.IWorkbenchWindow;\r
-import org.eclipse.ui.PlatformUI;\r
-import org.eclipse.ui.internal.WorkbenchWindow;\r
-import org.eclipse.ui.internal.progress.ProgressRegion;\r
-\r
-/**\r
- * Handler for perspectiveBars ExtensionPoint\r
- * \r
- * FIXME : statusLine widgets are not restored into original positions.\r
- * \r
- * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
- *\r
- */\r
-@SuppressWarnings("restriction")\r
-public class PerspectiveBarsActivator implements IPerspectiveListener4, IWindowListener {\r
-\r
- private IWorkbenchWindow activeWindow;\r
-\r
-\r
- public PerspectiveBarsActivator() {\r
- PlatformUI.getWorkbench().addWindowListener(this);\r
- }\r
-\r
- public void dispose() {\r
- PlatformUI.getWorkbench().removeWindowListener(this);\r
- }\r
-\r
- //------------------------------------------------------------------------\r
- // IPerspectiveListener4\r
- //------------------------------------------------------------------------\r
-\r
- @Override\r
- public void perspectivePreDeactivate(IWorkbenchPage page, IPerspectiveDescriptor perspective) {\r
- }\r
-\r
- @Override\r
- public void perspectiveClosed(IWorkbenchPage page, IPerspectiveDescriptor perspective) {\r
- }\r
-\r
- @Override\r
- public void perspectiveDeactivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {\r
- }\r
-\r
- @Override\r
- public void perspectiveOpened(IWorkbenchPage page, IPerspectiveDescriptor perspective) {\r
- }\r
-\r
- @Override\r
- public void perspectiveSavedAs(IWorkbenchPage page, IPerspectiveDescriptor oldPerspective,\r
- IPerspectiveDescriptor newPerspective) {\r
- }\r
-\r
- @Override\r
- public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective,\r
- IWorkbenchPartReference partRef, String changeId) {\r
- // See IWorkbenchPage.CHANGED_* constants for change id's.\r
- }\r
-\r
- @Override\r
- public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {\r
- activatePerspective(perspective.getId());\r
- }\r
-\r
- @Override\r
- public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, String changeId) {\r
- // See IWorkbenchPage.CHANGED_* constants for change id's.\r
- }\r
-\r
- //------------------------------------------------------------------------\r
- // IWindowListener\r
- //------------------------------------------------------------------------\r
-\r
- @Override\r
- public void windowActivated(IWorkbenchWindow window) {\r
-// System.out.println("attaching to window: " + window);\r
- attachToWindow(window);\r
- }\r
-\r
- @Override\r
- public void windowClosed(IWorkbenchWindow window) {\r
- }\r
-\r
- @Override\r
- public void windowDeactivated(IWorkbenchWindow window) {\r
-// System.out.println("detaching from window: " + window);\r
- detachFromWindow(window);\r
- }\r
-\r
- @Override\r
- public void windowOpened(IWorkbenchWindow window) {\r
- }\r
-\r
- //------------------------------------------------------------------------\r
- // UTILITIES\r
- //------------------------------------------------------------------------\r
-\r
- private void attachToWindow(IWorkbenchWindow window) {\r
- activeWindow = window;\r
- window.addPerspectiveListener(this);\r
- IPerspectiveDescriptor perspective = window.getActivePage().getPerspective();\r
- if (perspective != null) {\r
- activatePerspective(perspective.getId());\r
- }\r
- }\r
-\r
- private void detachFromWindow(IWorkbenchWindow window) {\r
- window.removePerspectiveListener(this);\r
- }\r
-\r
-\r
-\r
-\r
- private Menu menu;\r
- \r
- private void activatePerspective(String perspectiveId) {\r
-// System.out.println("activating perspective: " + perspectiveId);\r
- \r
- \r
- List<IPerspectiveBarsExtension> exts = PerspectiveBarsManager.getInstance().getExtensions(perspectiveId);\r
- Boolean menuBar = null;\r
- Boolean coolBar = null;\r
- Boolean statusLine = null;\r
- Boolean perspectiveBar = null;\r
- Boolean fastViewBar = null;\r
- Boolean progressIndicator = null;\r
- for (IPerspectiveBarsExtension ext : exts) {\r
- if (menuBar == null)\r
- menuBar = ext.getMenuBar();\r
- if (coolBar == null)\r
- coolBar = ext.getCoolBar();\r
- if (statusLine == null)\r
- statusLine = ext.getStatusLine();\r
- if (perspectiveBar == null)\r
- perspectiveBar = ext.getPerspectiveBar();\r
- if (fastViewBar == null)\r
- fastViewBar = ext.getFastViewBar();\r
- if (progressIndicator == null)\r
- progressIndicator = ext.getProgressIndicator();\r
- }\r
- \r
- if (activeWindow instanceof WorkbenchWindow) {\r
- WorkbenchWindow window = (WorkbenchWindow)activeWindow;\r
- \r
- if (menuBar == null || menuBar == true) {\r
- Menu m = window.getShell().getMenuBar();\r
- if (m == null && menu != null) {\r
- window.getShell().setMenuBar(menu);\r
- }\r
- } else {\r
- Menu m = window.getShell().getMenuBar();\r
- if (m != null) {\r
- menu = m;\r
- window.getShell().setMenuBar(null);\r
- \r
- }\r
- }\r
- \r
- if (coolBar == null || coolBar == true) {\r
- window.setCoolBarVisible(true);\r
- } else {\r
- window.setCoolBarVisible(false);\r
- }\r
- \r
- if (statusLine == null || statusLine == true) {\r
- window.setStatusLineVisible(true);\r
- //window.showHeapStatus(true);\r
- } else {\r
- window.setStatusLineVisible(false);\r
- //window.showHeapStatus(false);\r
- }\r
- \r
- if (perspectiveBar == null || perspectiveBar == true) {\r
- window.setPerspectiveBarVisible(true);\r
- } else {\r
- window.setPerspectiveBarVisible(false);\r
- }\r
-\r
- // Bug 479522 - Remove unused fastView methods in WorkbenchWindow \r
- //if (fastViewBar == null || fastViewBar == true) {\r
- // window.setFastViewBarVisible(true);\r
- //} else {\r
- // window.setFastViewBarVisible(false);\r
- //}\r
- \r
- if (progressIndicator == null || progressIndicator == true) {\r
- ProgressRegion r = window.getProgressRegion();\r
- if (r != null)\r
- r.getControl().setVisible(true);\r
- \r
- } else {\r
- ProgressRegion r = window.getProgressRegion();\r
- if (r != null)\r
- r.getControl().setVisible(false);\r
- }\r
- // Bug 486768 - Delete unused internal ITrimManager\r
- //window.getTrimManager().forceLayout();\r
- }\r
- \r
- }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.ui.workbench;
+
+import java.util.List;
+
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IPerspectiveDescriptor;
+import org.eclipse.ui.IPerspectiveListener4;
+import org.eclipse.ui.IWindowListener;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPartReference;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.internal.WorkbenchWindow;
+import org.eclipse.ui.internal.progress.ProgressRegion;
+
+/**
+ * Handler for perspectiveBars ExtensionPoint
+ *
+ * FIXME : statusLine widgets are not restored into original positions.
+ *
+ * @author Marko Luukkainen <marko.luukkainen@vtt.fi>
+ *
+ */
+@SuppressWarnings("restriction")
+public class PerspectiveBarsActivator implements IPerspectiveListener4, IWindowListener {
+
+ private IWorkbenchWindow activeWindow;
+
+
+ public PerspectiveBarsActivator() {
+ PlatformUI.getWorkbench().addWindowListener(this);
+ }
+
+ public void dispose() {
+ PlatformUI.getWorkbench().removeWindowListener(this);
+ }
+
+ //------------------------------------------------------------------------
+ // IPerspectiveListener4
+ //------------------------------------------------------------------------
+
+ @Override
+ public void perspectivePreDeactivate(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
+ }
+
+ @Override
+ public void perspectiveClosed(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
+ }
+
+ @Override
+ public void perspectiveDeactivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
+ }
+
+ @Override
+ public void perspectiveOpened(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
+ }
+
+ @Override
+ public void perspectiveSavedAs(IWorkbenchPage page, IPerspectiveDescriptor oldPerspective,
+ IPerspectiveDescriptor newPerspective) {
+ }
+
+ @Override
+ public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective,
+ IWorkbenchPartReference partRef, String changeId) {
+ // See IWorkbenchPage.CHANGED_* constants for change id's.
+ }
+
+ @Override
+ public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
+ activatePerspective(perspective.getId());
+ }
+
+ @Override
+ public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, String changeId) {
+ // See IWorkbenchPage.CHANGED_* constants for change id's.
+ }
+
+ //------------------------------------------------------------------------
+ // IWindowListener
+ //------------------------------------------------------------------------
+
+ @Override
+ public void windowActivated(IWorkbenchWindow window) {
+// System.out.println("attaching to window: " + window);
+ attachToWindow(window);
+ }
+
+ @Override
+ public void windowClosed(IWorkbenchWindow window) {
+ }
+
+ @Override
+ public void windowDeactivated(IWorkbenchWindow window) {
+// System.out.println("detaching from window: " + window);
+ detachFromWindow(window);
+ }
+
+ @Override
+ public void windowOpened(IWorkbenchWindow window) {
+ }
+
+ //------------------------------------------------------------------------
+ // UTILITIES
+ //------------------------------------------------------------------------
+
+ private void attachToWindow(IWorkbenchWindow window) {
+ activeWindow = window;
+ window.addPerspectiveListener(this);
+ IPerspectiveDescriptor perspective = window.getActivePage().getPerspective();
+ if (perspective != null) {
+ activatePerspective(perspective.getId());
+ }
+ }
+
+ private void detachFromWindow(IWorkbenchWindow window) {
+ window.removePerspectiveListener(this);
+ }
+
+
+
+
+ private Menu menu;
+
+ private void activatePerspective(String perspectiveId) {
+// System.out.println("activating perspective: " + perspectiveId);
+
+
+ List<IPerspectiveBarsExtension> exts = PerspectiveBarsManager.getInstance().getExtensions(perspectiveId);
+ Boolean menuBar = null;
+ Boolean coolBar = null;
+ Boolean statusLine = null;
+ Boolean perspectiveBar = null;
+ Boolean fastViewBar = null;
+ Boolean progressIndicator = null;
+ for (IPerspectiveBarsExtension ext : exts) {
+ if (menuBar == null)
+ menuBar = ext.getMenuBar();
+ if (coolBar == null)
+ coolBar = ext.getCoolBar();
+ if (statusLine == null)
+ statusLine = ext.getStatusLine();
+ if (perspectiveBar == null)
+ perspectiveBar = ext.getPerspectiveBar();
+ if (fastViewBar == null)
+ fastViewBar = ext.getFastViewBar();
+ if (progressIndicator == null)
+ progressIndicator = ext.getProgressIndicator();
+ }
+
+ if (activeWindow instanceof WorkbenchWindow) {
+ WorkbenchWindow window = (WorkbenchWindow)activeWindow;
+
+ if (menuBar == null || menuBar == true) {
+ Menu m = window.getShell().getMenuBar();
+ if (m == null && menu != null) {
+ window.getShell().setMenuBar(menu);
+ }
+ } else {
+ Menu m = window.getShell().getMenuBar();
+ if (m != null) {
+ menu = m;
+ window.getShell().setMenuBar(null);
+
+ }
+ }
+
+ if (coolBar == null || coolBar == true) {
+ window.setCoolBarVisible(true);
+ } else {
+ window.setCoolBarVisible(false);
+ }
+
+ if (statusLine == null || statusLine == true) {
+ window.setStatusLineVisible(true);
+ //window.showHeapStatus(true);
+ } else {
+ window.setStatusLineVisible(false);
+ //window.showHeapStatus(false);
+ }
+
+ if (perspectiveBar == null || perspectiveBar == true) {
+ window.setPerspectiveBarVisible(true);
+ } else {
+ window.setPerspectiveBarVisible(false);
+ }
+
+ // Bug 479522 - Remove unused fastView methods in WorkbenchWindow
+ //if (fastViewBar == null || fastViewBar == true) {
+ // window.setFastViewBarVisible(true);
+ //} else {
+ // window.setFastViewBarVisible(false);
+ //}
+
+ if (progressIndicator == null || progressIndicator == true) {
+ ProgressRegion r = window.getProgressRegion();
+ if (r != null)
+ r.getControl().setVisible(true);
+
+ } else {
+ ProgressRegion r = window.getProgressRegion();
+ if (r != null)
+ r.getControl().setVisible(false);
+ }
+ // Bug 486768 - Delete unused internal ITrimManager
+ //window.getTrimManager().forceLayout();
+ }
+
+ }
+
+}