读书人

利用扩展点快速为工具栏加个上拉列表〔

发布时间: 2012-11-15 15:16:14 作者: rapoo

利用扩展点快速为工具栏加个下拉列表〔效果同:debug下拉〕



对应的Action
public 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;}}

读书人网 >编程

热点推荐