上篇文章简单写了下怎么新建一个eclipse插件工程,这次写一下怎么在上次的工程中添加几个菜单,如菜单栏菜单、工具栏菜单、右键菜单等。

创建一个完成的菜单需要了解三个扩展点,即menus、commands、handlers,其中menus为菜单的扩展点,在引入菜单扩展点后,添加一个menu即添加了一个菜单;commands为行为扩展点,即声明一个行为操作,如:吃饭、跑步等,handlers为具体的行为操作扩展点,吃饭跑步的具体实施。一个menu与一个command相关联,一个command与一个handler相关联。

通过PDE插件打开上次创建项目的plugin.xml文件,打开 Extensions 标签页,如图:

创建Command

点击Add按钮

引入commands扩展点,在扩展点上右键新建一个command:

设置command相关信息

其他的信息可以先不填写,如要了解更多,Google一下吧,command创建到这里基本上完成了。

创建menu

点击Add按钮

引入了一个menus扩展点,添加完扩展点后,在扩展点上面右键添加一个menuContribution

设置菜单类型及位置

设置菜单类型及位置时通过uri参数拼接进行配置,其中popup为弹出菜单类型,也可以为menu、toolbar分别为主菜单与工具栏菜单,org.eclipse.ui.popup.any 为菜单显示视图位置,这儿的配置为可以在任何视图显示;after=additions为菜单显示位置

在menuContribution右键添加一个command,将上面创建的command放置到菜单中:

配置command的相关信息

label:菜单显示的文字,如果没有则使用对应command的名字

id:为menu的唯一标识,

mnemonic:菜单的快捷键,按住Alt+F为本菜单的快捷键

icon:菜单的图标

tooltip:当鼠标移入菜单项上面时的提示文字

commandId:对应上面创建的command

创建Handler

handler对应的是行为的实际执行者,如:command对应java语言中的接口,handler对应实现类。

首先创建一个handler执行类,新建一个java类,继承自AbstractHandler:

package com.yunzaipiao.menu.handler;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.dialogs.MessageDialog;

public class SampleHandler extends AbstractHandler {

	public SampleHandler() {
		// TODO Auto-generated constructor stub
	}

	@Override
	public Object execute(ExecutionEvent event) throws ExecutionException {
		MessageDialog.openInformation(
				null,
				"测试插件",
				"测试右键弹出菜单成功!");
		return null;
	}

}

创建完实现类后,引入handler扩展点,将扩展点与改实现类关联起来。打开刚才添加menu与command标签页,点击Add:

新增一个handler,选中后配置信息:

commandId:对应上面创建的command

class:对应执行类,刚刚创建的执行类

运行一下,看看效果吧:

在插件项目上右键 Run as > Eclipse Application,在打开的新的eclipse 中随便找个地方,点击右键,出现菜单

点击菜单会弹出一个提示框

eclipse 插件编写(二)的更多相关文章

  1. eclipse 插件编写(四)

    前言 前面几篇文章讲了下如果编写简单的eclipse插件,如创建插件项目.编写右键弹出菜单等功能,接下来主要写一下如何生成代码的功能,这一片的功能跟插件本身的编写关联不太大,主要处理插件之后的业务内容 ...

  2. eclipse 插件编写(一)

    由于项目开发进程中有一些重复性的代码进行编写,没有任何业务逻辑,粘贴复制又很麻烦且容易出错,故想起做一个eclipse插件来满足一下自己的工作需要,同时记录一下,以供以后参考与共同学习.本文主要讲解一 ...

  3. eclipse 插件编写(三)

    参考:http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fworkbench_ ...

  4. 10. JEB1.5 插件编写二

    一些实例 1. 遍历当前光标处函数所有的Element Java代码: import java.io.*; import java.util.List; import jeb.api.IScript; ...

  5. Eclipse用法和技巧二十八:Eclipse插件Easy Explore的今世

    先说明一下easyexplore插件的功能,easyexplore是一个类似于 Windows Explorer的Eclipse插件,它可以帮助你在不退出Eclipse的环境下迅速浏览本地文件系统. ...

  6. J2EE SSH学习(二)安装Eclipse插件和第一个Eclipse项目

    (一)安装Eclipse插件 Eclipse有很多功能很强大的插件,我现在作为一个菜鸟只知道插件的功能通常都很牛叉实用或者很有趣,那么该怎么安装Eclipse插件呢? 我使用的是Eclipse 4.3 ...

  7. Eclipse 中安装 CDT 插件编写 C/C++

    使用到的软件 1.Eclipse 开发工具 2.MinGW 编译器 一.Eclipse 中安装 CDT 插件 打开 Eclipse 插件市场 搜索 CDT,并找到如下的插件.插件的版本名字可能不太一样 ...

  8. 阿里p3c(代码规范,eclipse插件、模版,idea插件)

    阿里p3c 一.说明 代码规范检查插件p3c,是根据<阿里巴巴Java开发手册>转化而成的自动化插件. (高级黑:P-3C“Orion”,反潜巡逻机,阿里大概取p3c先进,监测,发现潜在问 ...

  9. PyDev for eclipse 插件下载地址

    PyDev for eclipse 插件下载地址http://sourceforge.net/projects/pydev/files/pydev/python解释器以及python类库下载地址htt ...

随机推荐

  1. [Angular] Difference between ngAfterViewInit and ngAfterContentInit

    Content is what is passed as children. View is the template of the current component. The view is in ...

  2. 学习算法 - 表指针实现~ C++

    表指针实现.第二种方法是使用访问列表,模拟指针. 在我的理解中学习,它是创建一个节点数组,模拟存储装置,然后从中分配内存和释放内存. 但实际的内存没有被释放~ 下面的代码直接附着: // // mai ...

  3. PPT之SmartArt功能

    在PPT中,我们经常看到这样的漂亮的组合图标: 他们是怎么做出来的呢?其实用ppt自带的SmartArt功能就能做出来了. Tips:SmartArt可以直接先选择组合图标再填文字,还可以写好了文字, ...

  4. Erlang 转至维基百科

    Erlang(英语发音:/ˈɜrlæŋ/)是一种通用的并行程序设计语言,它由乔·阿姆斯特朗(Joe Armstrong)在瑞典电信设备制造商爱立信所辖的计算机科学研究室开发,目的是创造一种可以应付大规 ...

  5. CSS拾遗(一)

    重新看<精通CSS(第二版)>做一些记录,方便今后巩固. 1.外边距叠加 只有普通文档流中块框的垂直外边距才会发生外边距叠加.行内框.浮动框.或绝对定位框之间的外边距不会叠加. 2.相对定 ...

  6. jxl导出Excel

    首先先在自己工程中导入jxl的jar包: 疯狂google后找到一段别人的导出excel方法,先备份于下面: import java.io.File; import java.io.FileOutpu ...

  7. DDD实战12 值对象不创建表,而是直接作为实体中的字段

    这里的值对象如下风格: namespace Order.Domain.PocoModels { //订单地址 //虽然是值对象 但是不继承ValueObject //因为继承ValueObject会有 ...

  8. Windows7配置QT-Android开发环境!

    配置QT5.2.0-Android版本: 进行windows7下的软件开发~不用使用eclipse开发android软件,配置之后就可以向写C++代码一样,去写APP在Android手机上去运行了! ...

  9. ASP.NET Core 简介 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 简介 - ASP.NET Core 基础教程 - 简单教程,简单编程 ← ASP.NET Core 基础教程 ASP.NET Core Windows 环境配置 → A ...

  10. wpf listbox 选中项 上移下移

    原文:wpf listbox 选中项 上移下移 private void MoveUp_Click(object sender, RoutedEventArgs e)         {        ...