eclipse 插件编写(二)

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

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

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

eclipse 插件编写(二)

创建Command

点击Add按钮

eclipse 插件编写(二)

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

eclipse 插件编写(二)

设置command相关信息

eclipse 插件编写(二)

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

创建menu

点击Add按钮

eclipse 插件编写(二)

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

eclipse 插件编写(二)

设置菜单类型及位置

eclipse 插件编写(二)

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

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

eclipse 插件编写(二)

配置command的相关信息

eclipse 插件编写(二)

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:

eclipse 插件编写(二)

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

eclipse 插件编写(二)

commandId:对应上面创建的command

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

运行一下,看看效果吧:

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

eclipse 插件编写(二)

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

eclipse 插件编写(二)

上一篇:ASP.NET IIS System.UnauthorizedAccessException: 对路径“C:\......xls”的访问被拒绝。


下一篇:CocoaPods安装使用及配置私有库及注意点