diff options
author | Marc Dumais | 2014-11-26 12:23:25 +0000 |
---|---|---|
committer | Marc Dumais | 2014-12-12 19:24:26 +0000 |
commit | 6dfebae4d32fc38bdad76faedf87bf113cb141d4 (patch) | |
tree | 31aca6e3da018810d961e306eec1b6fa63a2f091 /visualizer | |
parent | 5aa786349f50fba5aabb86ff7f96a37102662e63 (diff) | |
download | org.eclipse.cdt-6dfebae4d32fc38bdad76faedf87bf113cb141d4.tar.gz org.eclipse.cdt-6dfebae4d32fc38bdad76faedf87bf113cb141d4.tar.xz org.eclipse.cdt-6dfebae4d32fc38bdad76faedf87bf113cb141d4.zip |
Bug 453227 - [visualizer] VisualizerView: view menu not refreshed when
opened
Change-Id: I43290b4e4632eb9bfc963510ac2fc3960e653fd6
Reviewed-on: https://git.eclipse.org/r/37072
Reviewed-by: Marc Khouzam <marc.khouzam@ericsson.com>
Tested-by: Hudson CI
Reviewed-by: Marc Dumais <marc.dumais@ericsson.com>
Tested-by: Marc Dumais <marc.dumais@ericsson.com>
Diffstat (limited to 'visualizer')
3 files changed, 61 insertions, 10 deletions
diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/META-INF/MANIFEST.MF b/visualizer/org.eclipse.cdt.visualizer.ui/META-INF/MANIFEST.MF index e000583f504..ef9765a1280 100755 --- a/visualizer/org.eclipse.cdt.visualizer.ui/META-INF/MANIFEST.MF +++ b/visualizer/org.eclipse.cdt.visualizer.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin.name Bundle-SymbolicName: org.eclipse.cdt.visualizer.ui;singleton:=true -Bundle-Version: 1.1.0.qualifier +Bundle-Version: 1.2.0.qualifier Bundle-Activator: org.eclipse.cdt.visualizer.ui.plugin.CDTVisualizerUIPlugin Bundle-Vendor: %provider.name Require-Bundle: org.eclipse.ui, diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/pom.xml b/visualizer/org.eclipse.cdt.visualizer.ui/pom.xml index c55e076d135..ad644893461 100644 --- a/visualizer/org.eclipse.cdt.visualizer.ui/pom.xml +++ b/visualizer/org.eclipse.cdt.visualizer.ui/pom.xml @@ -11,7 +11,7 @@ <relativePath>../../pom.xml</relativePath> </parent> - <version>1.1.0-SNAPSHOT</version> + <version>1.2.0-SNAPSHOT</version> <artifactId>org.eclipse.cdt.visualizer.ui</artifactId> <packaging>eclipse-plugin</packaging> </project> diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/VisualizerView.java b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/VisualizerView.java index c9a81be1a2c..9806fc00df3 100644 --- a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/VisualizerView.java +++ b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/VisualizerView.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2012 Tilera Corporation and others. + * Copyright (c) 2012, 2014 Tilera Corporation and others. * 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 @@ -8,6 +8,7 @@ * Contributors: * William R. Swanson (Tilera Corporation) * Marc Dumais (Ericsson) - bug 436095 + * Marc Dumais (Ericsson) - bug 453227 *******************************************************************************/ // Package declaration @@ -135,6 +136,7 @@ public class VisualizerView m_viewer.addVisualizerViewerListener(this); m_viewer.addSelectionChangedListener(this); updateUI(); + populateMenu(); } } @@ -164,6 +166,9 @@ public class VisualizerView // set up context menu support initializeContextMenu(); + // setup the view menu + initializeMenu(); + // set up selection handling initializeSelectionHandling(); @@ -355,23 +360,69 @@ public class VisualizerView toolBarManager.add(m_openNewViewAction); toolBarManager.update(true); - // Allow presentation to set the toolbar's menu content, if any - IMenuManager menuManager = actionBars.getMenuManager(); - menuManager.removeAll(); - m_viewer.populateMenu(menuManager); - menuManager.update(true); - // Note: when context menu is invoked, - // the poplateContextMenu() method is called by the view, + // the populateContextMenu() method is called by the view, // which in turn delegates to the current visualizer // to populate the context menu. + // Note2: when view menu is invoked, + // the populateMenu() method is called by the view, + // which in turn delegates to the current visualizer + // to populate the view menu. + // Propagate the changes actionBars.updateActionBars(); } } + // --- view menu support --- + + /** Utility method that returns the menu manager for the view menu + * @since 1.2*/ + protected IMenuManager getViewMenuManager() { + IActionBars actionBars = getViewSite().getActionBars(); + return actionBars.getMenuManager(); + } + + /** Initialize the view menu + * @since 1.2*/ + protected void initializeMenu() { + IMenuManager menuManager = getViewMenuManager(); + menuManager.addMenuListener(new IMenuListener2() { + public void menuAboutToShow(IMenuManager m) { + viewMenuShow(m); + } + public void menuAboutToHide(IMenuManager m) { + viewMenuHide(m); + } + }); + } + + /** Invoked when the viewer is set to do an initial populating of the view + * menu. Without this, the view menu would not appear. + * @since 1.2*/ + protected void populateMenu() { + IMenuManager menuManager = getViewMenuManager(); + viewMenuShow(menuManager); + } + + /** Invoked when view menu is about to be shown. + * @since 1.2*/ + protected void viewMenuShow(IMenuManager m) + { + m.removeAll(); + m_viewer.populateMenu(m); + m.update(); + } + + /** Invoked when view menu is about to be hidden. + * @since 1.2*/ + protected void viewMenuHide(IMenuManager m) + { + } + + // --- context menu support --- /** Sets up context menu support. */ |