X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.ui%2Fsrc%2Forg%2Fsimantics%2Fui%2Fworkbench%2FPerspectiveBarsActivator.java;fp=bundles%2Forg.simantics.ui%2Fsrc%2Forg%2Fsimantics%2Fui%2Fworkbench%2FPerspectiveBarsActivator.java;h=5a94281cf97b418707de8caa7359b72d249ee8f5;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hp=82cddaa6eff4e9fae0d96eeb2da7a9869b4738ac;hpb=24e2b34260f219f0d1644ca7a138894980e25b14;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.ui/src/org/simantics/ui/workbench/PerspectiveBarsActivator.java b/bundles/org.simantics.ui/src/org/simantics/ui/workbench/PerspectiveBarsActivator.java index 82cddaa6e..5a94281cf 100644 --- a/bundles/org.simantics.ui/src/org/simantics/ui/workbench/PerspectiveBarsActivator.java +++ b/bundles/org.simantics.ui/src/org/simantics/ui/workbench/PerspectiveBarsActivator.java @@ -1,223 +1,223 @@ -/******************************************************************************* - * 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 - * - */ -@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 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(); - } - - } - -} +/******************************************************************************* + * 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 + * + */ +@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 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(); + } + + } + +}