java插件开发

在plugin.xml中一共有四个主要的标签:plugin、requires、runtime、extension。

(1) plugin标签:其中plugin标签的属性提供的是我们要开发的插件的基本信息,除了name、version、provider-name等,最重要的是id,它要求不能和现有的Eclipse插件标识符有冲突,因此本例中用包名作为插件的标识符。

(2) requires标签:requires标签中所列出的是需要的插件,需要用到Eclipse工作台和SWT API,因此导入了org.eclipse.ui插件。

(3) runtime标签:runtime标签指明的是开发的插件所在JAR包的文件名。

(4) extension标签:extension标签是插件扩展点的信息。

  4.1extension中还包括category和view两个标签,要注意的是category和view标签的标识符的唯一性,并且在view的属性中声明了Welcome插件的类名。

 

添加插件扩展,首先要说明几个东西:

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最终效果图:

posted @ 2026-01-05 14:16  a快乐码农  阅读(32)  评论(0)    收藏  举报