在视图的ToolBarManager中添加下拉菜单

时间:2011-07-28 08:59:24

标签: eclipse-rcp jface

我想在视图中添加几个动态创建的操作。这可以将它们添加到右上角的“视图”菜单中:

private void fillActionBars() {
  IActionBars bars = getViewSite().getActionBars();
  IMenuManager manager = bars.getMenuManager();
  IMenuManager myMenu = new MenuManager("Menu title", MY_MENU_ID);
  // add actions to myMenu
  manager.add(myMenu);
  bars.updateActionBars();
}

这很好用。但是,我想将操作添加到工具栏中的下拉菜单中(因此用户可以立即看到它们)。如果我用

替换第三行
IToolbarManager manager = bars.getToolBarManager();

菜单没有显示。

2 个答案:

答案 0 :(得分:2)

你没错,这不行。一种工作正常的解决方法,不使用MenuManager,而是使用下拉操作和菜单创建器:

IActionBars bars = getViewSite().getActionBars();
IToolbarManager manager = bars.getToolBarManager();
Action act=new Action("Menu title",SWT.DROP_DOWN){};
act.setMenuCreator(new MyMenuCreator());
manager.add(act);

class MyMenuCreator implements IMenuCreator{
    public Menu getMenu(Control ctrl){
     ...
    }
}

答案 1 :(得分:0)

您需要将IToolbarManager.add(IContributionItem)与实现IContributionItem的类一起使用。请参阅org.eclipse.ui.internal.FastViewBarContextMenuContribution作为示例。