`
soundycui
  • 浏览: 85703 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

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

    博客分类:
  • RCP
XML 
阅读更多
 <action
       class="com.abc.CallAction"
               icon="icons/statistic_icon.png"
               id="com.abc.calltime"
               label="&amp;Call" 
               style="pulldown" toolbarPath="com.abcxxx.caltime/callGroup"
               tooltip="ssssssssss">
         </action>


对应的Action
public class CallAction extends Action
implements IMenuCreator, IWorkbenchWindowPulldownDelegate2 {
 
	IWorkbenchWindow window = null;
	private MenuManager dropDownMenuMgr;
	private Action firstAction;
	private Action secondAction; 
  
	public CallAction(){
	     setMenuCreator(this);
	} 

	@Override
	public void init(IWorkbenchWindow window) {
		this.window = window; 
	}

	@Override
	public void run(IAction action) {}  
	
	public void setEnabled( boolean enabled ){}

	@Override
	public 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);
	    	}
	    }
	@Override
	public void dispose() {
		 
		  if(null != dropDownMenuMgr){
				dropDownMenuMgr.dispose();
				dropDownMenuMgr = null;
			}
	}

	@Override
	public 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);	 
			}	
		}

	@Override
	public Menu getMenu(Menu parent) {
		return null;
	}
}
0
2
分享到:
评论

相关推荐

    EditPlus 2整理信箱的工具

    如果你使用 EditPlus 进行文本编辑,那么每次创建文本文件,编辑后保存时,尽管文件类型下拉列表中显示的是文本文件, EditPlus 还是询问你是否添加".txt"后缀,是不是很烦? 解决方法: ① 在程序目录建立一个空的...

    editplus 代码编辑器html c++ jsp css

    如果你使用 EditPlus 进行文本编辑,那么每次创建文本文件,编辑后保存时,尽管文件类型下拉列表中显示的是文本文件, EditPlus 还是询问你是否添加".txt"后缀,是不是很烦? 解决方法: ① 在程序目录建立一个空的...

    Editplus 3[1].0

    如果你使用 EditPlus 进行文本编辑,那么每次创建文本文件,编辑后保存时,尽管文件类型下拉列表中显示的是文本文件, EditPlus 还是询问你是否添加".txt"后缀,是不是很烦? 解决方法: ① 在程序目录建立一个空的...

    400个DreamWeaver插件

    400个插件,下面的详细列表: mxp/ColdFusion中的Include mxp/80多个国家的一个下拉菜单,在某些时候的确挺方便的 mxp/检查当前文件的兼容性和可能包含的错误,并会给出详细的检测报告 mxp/在代码编辑框中选择一段...

    KODExplorer 芒果云-资源管理器

    - 文件管理工具栏 增加菜单选项,方便移动设备操作 - 文件编辑器,文件树目录 上下左右键盘切换 快捷键加入 - 树目录去掉库,改为个人目录等多处文案修改 - 默认打开用户目录 ####fix bug:(bug解决和程序优化)...

Global site tag (gtag.js) - Google Analytics