• 【eclipse插件开发实战】 Eclipse插件开发5——时间插件Timer开发实例详解


     Eclipse插件开发5——时间插件Timer开发实例详解


            这里做的TimeHelper插件设定为在菜单栏、工具栏提供快捷方式,需要在相应地方设置扩展点,最后弹出窗体显示时间。

            在上一篇文章里创建好了Time工程,在MANIFEST.MF的“扩展”选项卡里可以看到基本的插件扩展,当然这里最开始只有org.eclipse.core.runtime.application和org.eclipse.ui.perspectives,如下图所示:



            下面我们就要添加插件扩展,首先要说明几个东西:

    1.      commands:通过这个扩展可以自定义添加事件处理类(例如TimeHandler.java);

    2.      menu:在菜单栏里扩展插件,并且这个之后是要绑定到commands上的,commands的事件处理类用以处理相应事件;

    3.      toolbar:在工具栏里扩展插件,这个之后也需要绑定到commands上,commands的事件处理类用以处理相应事件;

            在右侧点击“添加”按钮,即可添加相应扩展,这里添加三个东西:org.eclipse.ui.commands、org.eclipse.ui.menus(之后要在工具栏用)、org.eclipse.ui.menus(之后要在菜单栏用),添加好后如下图所示:




    step1:新建commands并添加事件处理函数TimeHandler

            在org.eclipse.ui.commands上右键→新建command,在右侧里设定名称name为Time,id设为rcpproject.commands.Time(这个id只是一个区分,怎么写都可以,只要不重复,之后就是通过这个id来找到相应的commands的)。



            最主要的defaultHandler,这里双击defaultHandler超链接,就会提示创建一个新的处理类,这里在timer包下创建TimeHandler类,继承自org.eclipse.core.commands.AbstractHandler,接口为IHandler。代码如下:

    package timer;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import org.eclipse.core.commands.AbstractHandler;
    import org.eclipse.core.commands.ExecutionEvent;
    import org.eclipse.core.commands.ExecutionException;
    import org.eclipse.core.commands.IHandler;
    import org.eclipse.jface.dialogs.MessageDialog;
    import org.eclipse.ui.handlers.HandlerUtil;
    
    public class TimeHandler extends AbstractHandler implements IHandler {	
    	Date date = new Date(System.currentTimeMillis());
    	String str = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
    	
    	public Object execute(ExecutionEvent event) throws ExecutionException {
    			MessageDialog.openInformation(HandlerUtil.getActiveWorkbenchWindow(event).getShell(), 
    					"Time Helper", "Current time is " + str);
    		return null;
    	}
    }
    

            这里创建一个窗体,得到工作台事件.getActiveWorkbenchWindow(event),窗口标题为TimeHelper,对话框里显示当前时间。


    step2:添加事件到工具栏

            在org.eclipse.ui.menus上右键新建menuContribution,然后再右键新建toolbar(id设为SayTime),再右键新建commands,此时把commands绑定到之前写的处理类上,通过设定好的commandId来关联:此处设定为rcpproject.commands.Time(就是之前的org.eclipse.ui.commands的id)。当然,这里还可以添加icon,把图标添加上去,前提是之前你在icon文件夹下已经放好了相应图标元素。另外还可以设定tooltip,设置提示语为StartAlarm。




    step3:添加事件到菜单栏

    同样的方式,在下面第二个org.eclipse.ui.menus上右键新建menuContribution,然后再右键新建menu(id设为timeMenu),再右键新建commands,把commands绑定到之前写的处理类上,设定commandId关联:此处设定为rcpproject.commands.Time,同上操作。



            运行程序,这里需要在运行配置里设置一下“Run a product”:org.eclipse.app.package.rcp.product




           最后导出jar包,安装到plugins文件夹下,重启eclipse最终效果图:


            该项目源码我已经commit到github,有兴趣的可以去看一下:https://github.com/DianaCody/Time.git,并且插件的jar包下载也在README.md文档里有下载链接,把jar包放到plugin目录下即可安装,jar包也可以到我的csdn资源页下载:http://download.csdn.net/detail/dianacody/7659081

  • 相关阅读:
    使用事件驱动模型实现高效稳定的网络服务器程序
    Muduo 多线程模型:一个 Sudoku 服务器演变
    淘宝李晓拴:淘宝网PHP电子商务应用
    又一随机视频聊天网站内侧了,名字叫QQ偶遇,地址为:http://qq.17ouyu.com/
    又一随机视频聊天网站内侧了,地址为:http://www.17ouyu.com/
    多线程服务器的常用编程模型
    Linux系统shell脚本对字符串、数字、文件的判断
    【2022.01.11】HassOS的备份、HassOS的SSH连接、Docker的部署
    【2022.01.09】了解HassOS的开发者工具——添加自定义组件
    【2022.01.10】装修别墅、洋房户型的一些注意事项
  • 原文地址:https://www.cnblogs.com/DianaCody/p/5425681.html
Copyright © 2020-2023  润新知