RCP之创建菜单和工具栏

为RCP创建菜单和工具栏有两种方式:一种是通过配置来实现,另一种是写代码。

当然这两种方式都需要我们自己写对应的实践处理代码,也即点击菜单或者工具栏按钮时的响应代码。

 

下面先来看第一种方式:通过配置创建菜单。

首先打开plugin.xml文件,eclipse会自动打开一个窗口,也就是插件的配置窗口,共有多个标签页。

我们选择Extensions这个标签页,如下图:

RCP之创建菜单和工具栏 

如果在左侧的All Extensions中不包含org.eclipse.ui.menus,我们可以通过中间的Add按钮来添加,直接在打开的窗口中的过滤文本框中输入menus,

然后选择第一个完成就可以了。

接下来,选中该项,右键new -> menuContribution,将locationURI指定为上面的值,locationURI是用来指定该菜单的标识位置。

然后选中刚创建的menuContribution,右键new -> menu就可以创建一个菜单项,属性页面如下:

RCP之创建菜单和工具栏

其中标识有*的是必填项,但是id这里需要填写,因为我们在后面需要使用这个id,并且确保id是唯一的。我们可以像这样添加很多菜单。当然这里创建的只是一级菜单,

即菜单直接显示的菜单,点击没有子菜单。如果在这个时候,运行程序,我们是看不到我们新建的菜单的,估计是因为没有子菜单。

 

下面我们要添加actionSet,如果在左侧的All Extensions中不包含org.eclipse.ui.actionSets这一项,我们也可以按照上面的方法来添加,在添加以后,我们选中该项

然后右键new -> actionSet创建一个动作集,在右侧的属性页面中标识为*好的必须填写,需要注意的是visiable下拉框我们要选择true,这样这些action才会显示。

可以这样添加多个actionSet,我一般是一个菜单建立一个actionSet,这样比较清晰,也比较容易控制。然后在新建的actinoSet下面,我们新建action,属性页面如下:

RCP之创建菜单和工具栏

id和label这个是必须要填的,需要注意的地方就是menubarPath,“/”之前的字符串就是我们之前新建的菜单的id,

该选项的作用是指定该action将插入到哪个菜单下面,“\”后面的是菜单的名称,下面是toolbarPath,就是该action在工具栏中的名称。我们可以像这样

配置多个action,配置结束以后就可以运行程序看看结果:

RCP之创建菜单和工具栏

截图中出现的对话框,是因为我们没有为菜单或者工具栏按钮添加事件处理代码。

到此,我们的菜单和工具栏都正确显示了,后面我们来为这些菜单和工具栏添加快捷键以及事件处理代码。