2011-07-28 6 views
3

ビューに動的に作成された複数のアクションを追加したいとします。これは右上のビューメニューにそれらを加えるために働きます:ビューのToolBarManagerにドロップダウンメニューを追加

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(); 
} 

これはうまくいきます。しかし、代わりにツールバーのドロップダウンメニューにアクションを追加したいと思います(ユーザーがすぐに見ることができるように)。 3行目を

に置き換えた場合

メニューが表示されません。

答えて

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){ 
    ... 
    } 
} 
0

IToolbarManager.add(IContributionItem)には、IContributionItemを実装するクラスを使用する必要があります。例としてorg.eclipse.ui.internal.FastViewBarContextMenuContributionを参照してください。

+0

問題があるが、これは私が質問に何をすべきかです: 'IMenuManager'は' IContributionItem'を実装ありません。だから明らかにいくつかの追加要件があります。 –

関連する問題