`
soundycui
  • 浏览: 84350 次
  • 性别: 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
分享到:
评论

相关推荐

    DebugView-Windows内核调试工具

    7. **与其他工具集成**:由于DebugView的输出可以被其他程序读取,因此它可以与许多自动化测试工具或脚本语言结合使用,扩展调试能力。 8. **安全特性**:DebugView不会影响系统的稳定性,因为它只是接收和显示调试...

    在Win64下运行debug(Debug+DOSbox)

    在学习汇编语言时,debug不失为练习得好工具。读者操作系统若为32位,可直接运行debug。 在64位操作系统下,想运行debug,需要两个东西:DOSBox,debug.exe。 1,下载、安装DOSBox。 2,下载debug.exe,将debug.exe...

    Mac汇编工具:debug,edit,MASM,LINK

    本文将详细介绍其中的四个关键工具:debug、edit、MASM和LINK。 **debug** 是一个非常基础的调试工具,主要用于检查和修改内存中的数据,以及跟踪程序执行。在早期的DOS系统中,debug是系统自带的调试器,但在Mac...

    微型计算机原理与接口技术:DEBUG调试程序.ppt

    DEBUG调试程序是一个基本的调试工具,用于检查和调试汇编语言程序。它可以使程序设计人员看到程序执行的每一步细节,观察和修改寄存器及存储单元的内容,监视目标程序的执行情况。 二、 DEBUG命令 DEBUG命令是...

    DebugView监控工具

    **DebugView监控工具详解** DebugView是一款强大的调试日志查看工具,由微软的Sysinternals Suite组件之一。它能够捕获并显示来自应用程序、驱动程序或系统服务中的TRACE(调试版本)和OutputDebugString函数输出的...

    debug 命令大全

    * `Debug:S`:在部分内存中搜索一个或多个字节值的模式 * `Debug:T`:执行一条指令,然后显示所有寄存器的内容、所有标志的状态和 Debug 下一步要执行的指令的解码形式 * `Debug:U`:反汇编字节并显示相应的原语句 *...

    DebugView-Windows调试工具

    文件列表中的"DBGVIEW.CHM"是一个帮助文件,通常包含关于DebugView的详细使用指南、功能介绍、API参考等信息。用户可以通过这个文件来学习如何操作DebugView,解决在使用过程中遇到的问题。"DBGVIEW.EXE"则是Debug...

    DebugView 调试工具

    DebugView是一款强大的系统调试工具,由微软的Sysinternals团队开发。它允许用户捕获、查看和分析控制台输出,包括应用程序的日志消息、调试输出以及内核模式调试信息。这款工具对于软件开发者、系统管理员以及任何...

    debug.exe 调试工具

    "debug.exe"是一款早期的命令行调试工具,最初随Microsoft的DOS操作系统一同发布,至今仍被一些资深开发者用于低级别程序调试。本文将详细介绍debug.exe工具及其在现代软件开发中的应用。 ### 一、debug.exe概述 ...

    DEBUG 命令详解 调试工具

    #### Debug:C(比较)命令 `C`(比较)命令用于比较内存中的两个部分是否相等,适用于检测数据一致性或查找内存篡改。 - **语法**:`c range address` - `range`指定要比较的第一个内存区域的范围。 - `address`...

    9.0 10.0SystemUI默认展开下拉框(展开下拉快捷).rar

    总之,实现Android 9.0和10.0 SystemUI的默认展开下拉列表涉及到深入理解SystemUI源码、快速设置服务以及状态栏的交互逻辑。这是一个对Android系统有深入理解的开发者才能完成的任务,需要谨慎处理以保证系统的稳定...

    MASM DEBUG

    MASM DEBUG 是一个功能强大的调试工具,提供了多种命令来帮助开发者调试和排除程序中的错误。本文将对 MASM DEBUG 命令进行详细的解释和介绍。 DEBUG 命令格式 DEBUG 命令的格式为:DEBUG [&lt;驱动器名&gt;:][&lt;路径&gt;]...

    eclipse扩展点介绍 插件

    3. **操作(Actions)**:包括菜单项、工具栏按钮、快捷键等,插件可以通过扩展点来添加新的操作行为。 4. **构建(Build)**:控制项目的编译和构建过程,插件可以插入自己的构建步骤。 5. **运行配置(Run ...

    Unity Debug类扩展为自定义输出

    扩展Unity Debug类,在Android和IOS ,Hololens等平台上进行Unity调试的时候看不到控制台输出,所以需要进行日志扩展将Log输出到屏幕上或者是保存文件,就需要对Debug进行扩展。方便直接调试。导直接导入Unity即可。...

    DebugView 调试日志工具

    DebugView是一款强大的调试日志查看工具,尤其在Windows操作系统环境下,它被广泛应用于软件开发和系统调试过程。这个工具能够捕获并显示由`OutputDebugString`和`TRACE`宏生成的调试信息,使得开发者无需编译调试...

    DOS汇编工具包(基于dosbox,包含debug,edit,masm)

    在这个工具包中,DOSBox版本为0.74,是该软件的一个稳定版本,能提供良好的DOS环境模拟。 **汇编语言** 是一种低级编程语言,其中每条指令直接对应于计算机的机器码。在DOS时代,汇编语言被广泛用于系统编程、游戏...

    ajax+json+ashx实现下拉列表三级联动.rar

    在IT领域,尤其是在Web开发中,下拉列表的三级联动是一种常见的交互设计,它能够帮助用户在多个选项间快速导航并作出选择。本项目“ajax+json+ashx实现下拉列表三级联动”旨在利用jQuery、Ajax以及ASHX处理程序来...

    DebugLog扩展调试demo

    `DebugLog`是一个自定义的日志工具类,它扩展了Android原生的`Log`类,提供了更加丰富的日志输出功能,方便我们在调试应用时获取更详细的信息。本篇文章将深入探讨`DebugLog`的实现原理及其在调试过程中的作用。 `...

    mfc组合框下拉列表项添加删除按钮

    在Windows应用程序开发中,MFC(Microsoft Foundation Classes)是一个基于C++的类库,它为开发者提供了构建Windows GUI(图形用户界面)应用的框架。在这个特定的案例中,"mfc组合框下拉列表项添加删除按钮"是一个...

Global site tag (gtag.js) - Google Analytics