1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-22 06:02:11 +02:00

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>
This commit is contained in:
Marc Dumais 2014-11-26 07:23:25 -05:00
parent 5aa786349f
commit 6dfebae4d3
3 changed files with 61 additions and 10 deletions

View file

@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name Bundle-Name: %plugin.name
Bundle-SymbolicName: org.eclipse.cdt.visualizer.ui;singleton:=true 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-Activator: org.eclipse.cdt.visualizer.ui.plugin.CDTVisualizerUIPlugin
Bundle-Vendor: %provider.name Bundle-Vendor: %provider.name
Require-Bundle: org.eclipse.ui, Require-Bundle: org.eclipse.ui,

View file

@ -11,7 +11,7 @@
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<version>1.1.0-SNAPSHOT</version> <version>1.2.0-SNAPSHOT</version>
<artifactId>org.eclipse.cdt.visualizer.ui</artifactId> <artifactId>org.eclipse.cdt.visualizer.ui</artifactId>
<packaging>eclipse-plugin</packaging> <packaging>eclipse-plugin</packaging>
</project> </project>

View file

@ -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 * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
@ -8,6 +8,7 @@
* Contributors: * Contributors:
* William R. Swanson (Tilera Corporation) * William R. Swanson (Tilera Corporation)
* Marc Dumais (Ericsson) - bug 436095 * Marc Dumais (Ericsson) - bug 436095
* Marc Dumais (Ericsson) - bug 453227
*******************************************************************************/ *******************************************************************************/
// Package declaration // Package declaration
@ -135,6 +136,7 @@ public class VisualizerView
m_viewer.addVisualizerViewerListener(this); m_viewer.addVisualizerViewerListener(this);
m_viewer.addSelectionChangedListener(this); m_viewer.addSelectionChangedListener(this);
updateUI(); updateUI();
populateMenu();
} }
} }
@ -164,6 +166,9 @@ public class VisualizerView
// set up context menu support // set up context menu support
initializeContextMenu(); initializeContextMenu();
// setup the view menu
initializeMenu();
// set up selection handling // set up selection handling
initializeSelectionHandling(); initializeSelectionHandling();
@ -355,23 +360,69 @@ public class VisualizerView
toolBarManager.add(m_openNewViewAction); toolBarManager.add(m_openNewViewAction);
toolBarManager.update(true); 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, // 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 // which in turn delegates to the current visualizer
// to populate the context menu. // 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 // Propagate the changes
actionBars.updateActionBars(); 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 --- // --- context menu support ---
/** Sets up context menu support. */ /** Sets up context menu support. */