下面列出了org.eclipse.jface.viewers.EditingSupport#org.eclipse.jface.action.MenuManager 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
protected void createContextMenuFor(StructuredViewer viewer) {
MenuManager contextMenu = new MenuManager("#PopUp");
contextMenu.add(new Separator("additions"));
contextMenu.setRemoveAllWhenShown(true);
contextMenu.addMenuListener(this);
Menu menu = contextMenu.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
Transfer[] transfers = new Transfer[] {LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(),
FileTransfer.getInstance()};
viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
}
/**
* This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createContextMenuFor ( StructuredViewer viewer )
{
MenuManager contextMenu = new MenuManager ( "#PopUp" ); //$NON-NLS-1$
contextMenu.add ( new Separator ( "additions" ) ); //$NON-NLS-1$
contextMenu.setRemoveAllWhenShown ( true );
contextMenu.addMenuListener ( this );
Menu menu = contextMenu.createContextMenu ( viewer.getControl () );
viewer.getControl ().setMenu ( menu );
getSite ().registerContextMenu ( contextMenu, new UnwrappingSelectionProvider ( viewer ) );
int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance (), LocalSelectionTransfer.getTransfer (), FileTransfer.getInstance () };
viewer.addDragSupport ( dndOperations, transfers, new ViewerDragAdapter ( viewer ) );
viewer.addDropSupport ( dndOperations, transfers, new EditingDomainViewerDropAdapter ( editingDomain, viewer ) );
}
private void fillViewMenu() {
IActionBars actionBars = getViewSite().getActionBars();
IMenuManager viewMenu = actionBars.getMenuManager();
viewMenu.add(new Separator());
for (int i = 0; i < fToggleCallModeActions.length; i++) {
viewMenu.add(fToggleCallModeActions[i]);
}
viewMenu.add(new Separator());
MenuManager layoutSubMenu= new MenuManager(CallHierarchyMessages.CallHierarchyViewPart_layout_menu);
for (int i = 0; i < fToggleOrientationActions.length; i++) {
layoutSubMenu.add(fToggleOrientationActions[i]);
}
viewMenu.add(layoutSubMenu);
viewMenu.add(new Separator(IContextMenuConstants.GROUP_SEARCH));
MenuManager fieldSubMenu= new MenuManager(CallHierarchyMessages.CallHierarchyViewPart_field_menu);
for (int i = 0; i < fToggleFieldModeActions.length; i++) {
fieldSubMenu.add(fToggleFieldModeActions[i]);
}
viewMenu.add(fieldSubMenu);
viewMenu.add(fShowSearchInDialogAction);
}
/**
* This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.MenuManager}s containing
* {@link org.eclipse.jface.action.ActionContributionItem}s based on the {@link org.eclipse.jface.action.IAction}s
* contained in the <code>submenuActions</code> collection, by inserting them before the specified contribution
* item <code>contributionID</code>.
* If <code>contributionID</code> is <code>null</code>, they are simply added.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void populateManager ( IContributionManager manager, Map<String, Collection<IAction>> submenuActions, String contributionID )
{
if ( submenuActions != null )
{
for ( Map.Entry<String, Collection<IAction>> entry : submenuActions.entrySet () )
{
MenuManager submenuManager = new MenuManager ( entry.getKey () );
if ( contributionID != null )
{
manager.insertBefore ( contributionID, submenuManager );
}
else
{
manager.add ( submenuManager );
}
populateManager ( submenuManager, entry.getValue (), null );
}
}
}
/**
* Adds the actions to the tableviewer context menu.
*
* @param actions
* a collection of IAction objets
*/
private void hookContextMenu(final Collection<Object> actions, StructuredViewer viewer) {
MenuManager menuMgr = new MenuManager();
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager manager) {
for (Iterator<Object> iter = actions.iterator(); iter.hasNext();) {
Object item = iter.next();
if (item instanceof IContributionItem) {
manager.add((IContributionItem) item);
} else if (item instanceof IAction) {
manager.add((IAction) item);
}
}
manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
}
});
Menu menu = menuMgr.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
getSite().registerContextMenu(menuMgr, viewer);
}
/**
* 创建工具菜单
* @return 返回工具菜单的 menu manager;
*/
private MenuManager createToolMenu() {
MenuManager menu = new MenuManager(Messages.getString("ts.ApplicationActionBarAdvisor.menu.tool"),
"net.heartsome.cat.ts.ui.menu.tool") {
@Override
public boolean isVisible() {
IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (workbenchWindow == null)
return false;
IWorkbenchPage activePage = workbenchWindow.getActivePage();
if (activePage == null)
return false;
if (activePage.getPerspective().getId().contains("net.heartsome.cat.ts.perspective"))
return true;
return false;
}
}; // &Tool
menu.add(new GroupMarker("pluginConfigure"));
menu.add(new GroupMarker("preference.groupMarker"));
// menu.add(preferenceAction);
return menu;
}
/**
* Asserts that the context menu for the current navigator selection does not contain any duplicates.
*
* That is, two menu items that represent an action of the same class.
*/
private void assertContextMenuNoActionDuplicates() {
MenuManager menu = new MenuManager();
projectExplorer.getNavigatorActionService().fillContextMenu(menu);
List<ActionContributionItem> actionContributions = Arrays.asList(menu.getItems()).stream()
.filter(i -> i instanceof ActionContributionItem)
.map(i -> ((ActionContributionItem) i))
.collect(Collectors.toList());
Map<String, ActionContributionItem> contributionNameMap = new HashMap<>();
for (ActionContributionItem item : actionContributions) {
ActionContributionItem mapItem = contributionNameMap.putIfAbsent(item.getAction().getText(), item);
if (mapItem != null) {
IAction mapAction = mapItem.getAction();
IAction otherAction = item.getAction();
// Double check if action is of the same type
if (mapAction.getClass().equals(otherAction.getClass())) {
fail("Action '" + mapAction.getClass().getSimpleName()
+ "' is contributed twice to the context menu: "
+ mapAction.toString() + " " + otherAction.toString());
}
}
}
}
@Override
public void fillContextMenu(IMenuManager menu) {
super.fillContextMenu(menu);
IMenuManager incomingMenu = menu;
IMenuManager declarationsMenu = new MenuManager(Messages.ReferencesSearchGroup_References, IContextMenuConstants.GROUP_SEARCH);
if (editor != null){
menu.appendToGroup(ITextEditorActionConstants.GROUP_FIND, declarationsMenu);
} else {
incomingMenu.appendToGroup(IContextMenuConstants.GROUP_SEARCH, declarationsMenu);
}
incomingMenu = declarationsMenu;
incomingMenu.add(findReferencesAction);
incomingMenu.add(findReferencesProjectAction);
}
@Override
public void fillContextMenu(IMenuManager manager) {
MenuManager javaSearchMM= new MenuManager(MENU_TEXT, IContextMenuConstants.GROUP_SEARCH);
addAction(fFindWriteReferencesAction, javaSearchMM);
addAction(fFindWriteReferencesInProjectAction, javaSearchMM);
addAction(fFindWriteReferencesInHierarchyAction, javaSearchMM);
javaSearchMM.add(new Separator());
Iterator<IWorkingSet[]> iter= SearchUtil.getLRUWorkingSets().sortedIterator();
while (iter.hasNext()) {
addWorkingSetAction(iter.next(), javaSearchMM);
}
addAction(fFindWriteReferencesInWorkingSetAction, javaSearchMM);
if (!javaSearchMM.isEmpty())
manager.appendToGroup(fGroupId, javaSearchMM);
}
private void addRefactorSubmenu(IMenuManager menu) {
MenuManager refactorSubmenu = new MenuManager(RefactoringMessages.RefactorMenu_label, MENU_ID);
// refactorSubmenu.setActionDefinitionId(QUICK_MENU_ID);
if (fEditor != null) {
// final ITypeRoot element= getEditorInput();
// if (element != null && ActionUtil.isOnBuildPath(element)) {
refactorSubmenu.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager manager) {
refactorMenuShown(manager);
}
});
refactorSubmenu.add(fNoActionAvailable);
menu.appendToGroup(fGroupName, refactorSubmenu);
// }
} else {
ISelection selection = fSelectionProvider.getSelection();
for (Iterator<SelectionDispatchAction> iter = fActions.iterator(); iter.hasNext();) {
iter.next().update(selection);
}
if (fillRefactorMenu(refactorSubmenu) > 0)
menu.appendToGroup(fGroupName, refactorSubmenu);
}
}
private void addOpenWithMenu(IMenuManager menu) {
ISelection selection = getContext().getSelection();
if (selection.isEmpty() || !(selection instanceof IStructuredSelection)) {
return;
}
IStructuredSelection ss = (IStructuredSelection) selection;
if (ss.size() != 1) {
return;
}
Object o = ss.getFirstElement();
IFile file = AdapterUtilities.getAdapter(o, IFile.class);
if (file == null) {
return;
}
// Create a menu.
IMenuManager submenu = new MenuManager(ActionMessages.OpenWithMenu_label);
submenu.add(new OpenWithMenu(site.getPage(), file));
// Add the submenu.
menu.appendToGroup(IContextMenuConstants.GROUP_OPEN, submenu);
}
private void createMenu() {
MenuManager menuMgr = new MenuManager();
bodyMenu = menuMgr.createContextMenu(viewer.getControl());
copyAction = new CopyAction();
cutAction = new CutAction();
pasteAction = new PasteAction();
undoAction = new UndoAction();
redoAction = new RedoAction();
menuMgr.add(undoAction);
menuMgr.add(redoAction);
menuMgr.add(new Separator());
menuMgr.add(copyAction);
menuMgr.add(cutAction);
menuMgr.add(pasteAction);
}
public void updataPluginMenu(PluginConfigBean bean) {
String id = bean.getId();
for (int i = 0; i < parentManager.getItems().length; i++) {
if ("net.heartsome.cat.ts.ui.menu.plugin".equals(parentManager.getItems()[i].getId())) {
MenuManager pluginMenu = (MenuManager) parentManager.getItems()[i];
// 开始删除已经添加的菜单
for (int j = 0; j < pluginMenu.getItems().length; j++) {
String actionId = pluginMenu.getItems()[j].getId();
if (id.equals(actionId)) {
pluginMenu.remove(id);
pluginMenu.update();
addPluginMenu(bean);
}
}
}
}
}
private void refactorMenuShown(IMenuManager refactorSubmenu) {
// we know that we have an MenuManager since we created it in
// addRefactorSubmenu.
Menu menu = ((MenuManager) refactorSubmenu).getMenu();
menu.addMenuListener(new MenuAdapter() {
@Override
public void menuHidden(MenuEvent e) {
refactorMenuHidden();
}
});
ITextSelection textSelection = (ITextSelection) fEditor.getSelectionProvider().getSelection();
// JavaTextSelection javaSelection= new
// JavaTextSelection(getEditorInput(), getDocument(),
// textSelection.getOffset(), textSelection.getLength());
for (Iterator<SelectionDispatchAction> iter = fActions.iterator(); iter.hasNext();) {
SelectionDispatchAction action = iter.next();
action.update(textSelection);
}
refactorSubmenu.removeAll();
if (fillRefactorMenu(refactorSubmenu) == 0)
refactorSubmenu.add(fNoActionAvailable);
}
/**
* This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createContextMenuFor ( StructuredViewer viewer )
{
MenuManager contextMenu = new MenuManager ( "#PopUp" ); //$NON-NLS-1$
contextMenu.add ( new Separator ( "additions" ) ); //$NON-NLS-1$
contextMenu.setRemoveAllWhenShown ( true );
contextMenu.addMenuListener ( this );
Menu menu = contextMenu.createContextMenu ( viewer.getControl () );
viewer.getControl ().setMenu ( menu );
getSite ().registerContextMenu ( contextMenu, new UnwrappingSelectionProvider ( viewer ) );
int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance (), LocalSelectionTransfer.getTransfer (), FileTransfer.getInstance () };
viewer.addDragSupport ( dndOperations, transfers, new ViewerDragAdapter ( viewer ) );
viewer.addDropSupport ( dndOperations, transfers, new EditingDomainViewerDropAdapter ( editingDomain, viewer ) );
}
/**
* This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createContextMenuFor ( StructuredViewer viewer )
{
MenuManager contextMenu = new MenuManager ( "#PopUp" ); //$NON-NLS-1$
contextMenu.add ( new Separator ( "additions" ) ); //$NON-NLS-1$
contextMenu.setRemoveAllWhenShown ( true );
contextMenu.addMenuListener ( this );
Menu menu = contextMenu.createContextMenu ( viewer.getControl () );
viewer.getControl ().setMenu ( menu );
getSite ().registerContextMenu ( contextMenu, new UnwrappingSelectionProvider ( viewer ) );
int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance (), LocalSelectionTransfer.getTransfer (), FileTransfer.getInstance () };
viewer.addDragSupport ( dndOperations, transfers, new ViewerDragAdapter ( viewer ) );
viewer.addDropSupport ( dndOperations, transfers, new EditingDomainViewerDropAdapter ( editingDomain, viewer ) );
}
/**
* This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.MenuManager}s and their
* {@link org.eclipse.jface.action.ActionContributionItem}s based on the {@link org.eclipse.jface.action.IAction}s
* contained in the <code>submenuActions</code> map.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void depopulateManager ( IContributionManager manager, Map<String, Collection<IAction>> submenuActions )
{
if ( submenuActions != null )
{
IContributionItem[] items = manager.getItems ();
for ( int i = 0; i < items.length; i++ )
{
IContributionItem contributionItem = items[i];
if ( contributionItem instanceof MenuManager )
{
MenuManager submenuManager = (MenuManager)contributionItem;
if ( submenuActions.containsKey ( submenuManager.getMenuText () ) )
{
depopulateManager ( submenuManager, submenuActions.get ( contributionItem ) );
manager.remove ( contributionItem );
}
}
}
}
}
private void hookContextMenu() {
MenuManager menuMgr = new MenuManager("#PopupMenu");
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager manager) {
IStructuredSelection s = (IStructuredSelection) viewer.getSelection();
if(s.getFirstElement() instanceof DocumentImpl) {
fillContextMenu(manager);
}
}
});
Menu menu = menuMgr.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
getSite().registerContextMenu(menuMgr, viewer);
}
/**
* This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createContextMenuFor ( StructuredViewer viewer )
{
MenuManager contextMenu = new MenuManager ( "#PopUp" );
contextMenu.add ( new Separator ( "additions" ) );
contextMenu.setRemoveAllWhenShown ( true );
contextMenu.addMenuListener ( this );
Menu menu = contextMenu.createContextMenu ( viewer.getControl () );
viewer.getControl ().setMenu ( menu );
getSite ().registerContextMenu ( contextMenu, new UnwrappingSelectionProvider ( viewer ) );
int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance (), LocalSelectionTransfer.getTransfer (), FileTransfer.getInstance () };
viewer.addDragSupport ( dndOperations, transfers, new ViewerDragAdapter ( viewer ) );
viewer.addDropSupport ( dndOperations, transfers, new EditingDomainViewerDropAdapter ( editingDomain, viewer ) );
}
public void addContextMenu(String string, IWorkbenchPartSite iWorkbenchPartSite){
MenuManager mgr = new MenuManager();
Menu popupmenu = new PopupMenuBuilder(natTable, mgr).build();
iWorkbenchPartSite.registerContextMenu(string, mgr, null);
natTable.addConfiguration(new AbstractUiBindingConfiguration() {
@Override
public void configureUiBindings(UiBindingRegistry uiBindingRegistry){
uiBindingRegistry.registerMouseDownBinding(
new MouseEventMatcher(SWT.NONE, null, MouseEventMatcher.RIGHT_BUTTON),
new PopupMenuAction(popupmenu));
}
});
}
/**
* This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.MenuManager}s containing
* {@link org.eclipse.jface.action.ActionContributionItem}s based on the {@link org.eclipse.jface.action.IAction}s
* contained in the <code>submenuActions</code> collection, by inserting them before the specified contribution
* item <code>contributionID</code>.
* If <code>contributionID</code> is <code>null</code>, they are simply added.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void populateManager ( IContributionManager manager, Map<String, Collection<IAction>> submenuActions, String contributionID )
{
if ( submenuActions != null )
{
for ( Map.Entry<String, Collection<IAction>> entry : submenuActions.entrySet () )
{
MenuManager submenuManager = new MenuManager ( entry.getKey () );
if ( contributionID != null )
{
manager.insertBefore ( contributionID, submenuManager );
}
else
{
manager.add ( submenuManager );
}
populateManager ( submenuManager, entry.getValue (), null );
}
}
}
/**
* This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createContextMenuFor ( StructuredViewer viewer )
{
MenuManager contextMenu = new MenuManager ( "#PopUp" ); //$NON-NLS-1$
contextMenu.add ( new Separator ( "additions" ) ); //$NON-NLS-1$
contextMenu.setRemoveAllWhenShown ( true );
contextMenu.addMenuListener ( this );
Menu menu = contextMenu.createContextMenu ( viewer.getControl () );
viewer.getControl ().setMenu ( menu );
getSite ().registerContextMenu ( contextMenu, new UnwrappingSelectionProvider ( viewer ) );
int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance (), LocalSelectionTransfer.getTransfer (), FileTransfer.getInstance () };
viewer.addDragSupport ( dndOperations, transfers, new ViewerDragAdapter ( viewer ) );
viewer.addDropSupport ( dndOperations, transfers, new EditingDomainViewerDropAdapter ( editingDomain, viewer ) );
}
/**
* This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createContextMenuFor ( StructuredViewer viewer )
{
MenuManager contextMenu = new MenuManager ( "#PopUp" ); //$NON-NLS-1$
contextMenu.add ( new Separator ( "additions" ) ); //$NON-NLS-1$
contextMenu.setRemoveAllWhenShown ( true );
contextMenu.addMenuListener ( this );
Menu menu = contextMenu.createContextMenu ( viewer.getControl () );
viewer.getControl ().setMenu ( menu );
getSite ().registerContextMenu ( contextMenu, new UnwrappingSelectionProvider ( viewer ) );
int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance (), LocalSelectionTransfer.getTransfer (), FileTransfer.getInstance () };
viewer.addDragSupport ( dndOperations, transfers, new ViewerDragAdapter ( viewer ) );
viewer.addDropSupport ( dndOperations, transfers, new EditingDomainViewerDropAdapter ( editingDomain, viewer ) );
}
/**
* Create the context menu for the tree viewer
*/
private void createContextMenu() {
// Adds root context menu
fMenuManager = new MenuManager();
fMenuManager.setRemoveAllWhenShown(true);
fMenuManager.addMenuListener(manager -> fillContextMenu(manager));
// Context
Menu contextMenu = fMenuManager.createContextMenu(fViewer.getTree());
// Publish it
fViewer.getTree().setMenu(contextMenu);
}
/**
* Attaches a contextmenu listener to the tree
*/
void initContextMenu(IMenuListener menuListener, String popupId, IWorkbenchPartSite viewSite) {
MenuManager menuMgr = new MenuManager();
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(menuListener);
Menu menu = menuMgr.createContextMenu(getControl());
getControl().setMenu(menu);
viewSite.registerContextMenu(popupId, menuMgr, this);
}
private void hookContextMenu() {
MenuManager menuMgr = new MenuManager("#PopupMenu");
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
fillContextMenu(manager);
}
});
Menu menu = menuMgr.createContextMenu(fViewer.getControl());
fViewer.getControl().setMenu(menu);
getSite().registerContextMenu(menuMgr, fViewer);
}
/**
* Attaches a contextmenu listener to the tree
*/
void initContextMenu(IMenuListener menuListener, String popupId, IWorkbenchPartSite viewSite) {
MenuManager menuMgr= new MenuManager();
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(menuListener);
Menu menu= menuMgr.createContextMenu(getControl());
getControl().setMenu(menu);
viewSite.registerContextMenu(popupId, menuMgr, this);
}
@Override
protected void createContextMenu( Object element, MenuManager manager )
{
Object model = getBreadcrumbNodeProvider( getEditor( ).getGraphicalViewer( ) ).getRealModel( element );
ProviderFactory.createProvider( model ).createContextMenu( null,
model,
manager );
}
/**
* Attaches a contextmenu listener to the table
* @param menuListener the menu listener
* @param popupId the popup id
* @param viewSite the view site
*/
public void initContextMenu(IMenuListener menuListener, String popupId, IWorkbenchPartSite viewSite) {
MenuManager menuMgr= new MenuManager();
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(menuListener);
Menu menu= menuMgr.createContextMenu(getTable());
getTable().setMenu(menu);
viewSite.registerContextMenu(popupId, menuMgr, this);
}
/**
* Creates and registers a new popup menu on the supplied control.
*
* <p>
* When the menu is about to be shown the
* {@link #fillContextMenu(IMenuManager)} method will be called.
*/
private void createContextMenu(Control control) {
MenuManager mgr = new MenuManager("#PopupMenu");
mgr.setRemoveAllWhenShown(true);
mgr.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
fillContextMenu(manager);
}
});
Menu menu = mgr.createContextMenu(control);
control.setMenu(menu);
}