2011-07-28 3 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(); 
} 

잘 작동합니다. 그러나 툴바의 드롭 다운 메뉴에 액션을 추가하고 싶습니다 (사용자가 즉시 볼 수 있도록). 세 번째 줄을

으로 바꾸면 다음과 같은 결과가 나타납니다.

답변

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'을 구현 않습니다. 그래서 분명히 몇 가지 추가 요구 사항이 있습니다. –