Добавить выпадающее меню в ToolBarManager представления - PullRequest
3 голосов
/ 28 июля 2011

Я хочу добавить несколько динамически созданных действий в представление.Это работает, чтобы добавить их в меню просмотра в верхнем правом углу:

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 ]

2 голосов
/ 16 ноября 2012

Ты прав, это не работает. Обходной путь, который отлично работает, не используя 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){
     ...
    }
}
0 голосов
/ 01 августа 2011

Вам необходимо использовать IToolbarManager.add(IContributionItem) с классом, который реализует IContributionItem. См. org.eclipse.ui.internal.FastViewBarContextMenuContribution в качестве примера.

...