利用扩展点快速为工具栏加个下拉列表〔效果同:debug下拉〕
对应的Actionpublic class CallAction extends Actionimplements IMenuCreator, IWorkbenchWindowPulldownDelegate2 { IWorkbenchWindow window = null;private MenuManager dropDownMenuMgr;private Action firstAction;private Action secondAction; public CallAction(){ setMenuCreator(this);} @Overridepublic void init(IWorkbenchWindow window) {this.window = window; }@Overridepublic void run(IAction action) {} public void setEnabled( boolean enabled ){}@Overridepublic void selectionChanged(IAction action, ISelection selection) {} class InnerAction extends Action{ private String text; InnerAction(String text){ super(text); this.text = text; } @Override public void run() { super.run(); if("One".equals(text)){ //do one something secondAction.setEnabled(true); }else{ //do two something firstAction.setEnabled(true); } this.setEnabled(false); } }@Overridepublic void dispose() { if(null != dropDownMenuMgr){dropDownMenuMgr.dispose();dropDownMenuMgr = null;}}@Overridepublic Menu getMenu(Control parent) { createDropDownMenuMgr(); return dropDownMenuMgr.createContextMenu(parent); }private void createDropDownMenuMgr() {if (dropDownMenuMgr == null) {dropDownMenuMgr = new MenuManager();firstAction = new InnerAction("One");dropDownMenuMgr.add(firstAction);secondAction = new InnerAction("Two");dropDownMenuMgr.add(secondAction); }}@Overridepublic Menu getMenu(Menu parent) {return null;}}