rcp(插件开发)org.eclipse.ui.menus扩张点使用

rcp(插件开发)org.eclipse.ui.menus扩展点使用

问题描述:

开发eclipse插件,如何定义一个menu基础菜单条目,
使得新的插件开发可以在这个插件的基础上,定义菜单项;
(也就是:只要安装了这个插件,就可以在这个插件提供的菜单条目中,添加新的菜单项)

进一步描述:

如何在被依赖的插件里 定义菜单;在子插件中定义菜单条目?
举例:
比如在插件A中定义【查看】菜单项;
在插件B中定义“菜单条目1”、“菜单条目2”..、等,作为A定义的【查看】菜单的下拉项;
在插件C中定义“菜单条目3”、“菜单条目4”..、等,作为A定义的【查看】菜单的下拉项;
在开发插件B、C的时候,eclipse安装了插件A。

解决方法:

一、
在基础插件中,扩展 org.eclipse.ui.menus 扩展点
增加menuContribution,如下所示:
menu:org.eclipse.ui.main.menu?after=window
增加menu
id:com.cmb.gebp.menu
toolbar:org.eclipse.ui.main.toolbar?after=additions
增加toolbar
id:com.cmb.gebp.toolbar

二、
在上层插件中定义扩展actionSets扩展点
定义actionSet、action
在action中指定:
menubarPath:com.cmb.gebp.menu/additions 【基础插件定义的menu的id】
toolbarPath:com.cmb.gebp.toolbar/additions 【基础插件定义的toolbar的id】

 

补充:

 <menuContribution
            allPopups="true"
            locationURI="menu:org.eclipse.ui.main.menu?after=additions">

locationURI 配置 menu or toolbar 一定别弄混。

一定要在menu or toolbar 的下边添加一个command 否则菜单出不来。