Gnod

导航

 

在Eclipse RCP 中, 通过plugin.xml编辑器, 能够很方便的实现如菜单,toolbar,popup菜单的添加.

 
现以右键菜单popup menu的添加来说明下具体的实现方式:
1. 双击打开rcp工程plugin.xml文件, 选择Extensions选项: 

 
2. All Extensions 中点击Add 在弹出的Extension Point Selection 选中界面, 选择org.eclipse.ui.popupMenus, 添加一个popup menu Extension:
 
 

EclipseRCP对于popupMenus提供了一个模板Popup Menu,
使用该模板, eclipseRCP会为我们自动生成一个menu作为我们生成的新popup menu项, 该menu含一子menubar, 我们使用其提供的这一模版,
点击Next, 定制popup menu项的Label, 及menu子menubar的Label及其绑定的Action类名, 如图:

 
Target Object's Class: 指定添加menu的popup menu 所属的对象类型, 如工程,文件夹还是文件.
            对应工程的popup menu, 对应为: org.eclipse.core.resources.IProject
            对应文件夹的popup menu, 对应为: org.eclipse.core.resources.IFolder
            对应文件类型的popup menu, 对应为: org.eclipse.core.resources.IFile
       该class在随后的extensions选项后可重新修改.
     
Submenu Name: 指定 menu 的 Label
     
Action Label: 指定menubar 的Label
Action Class: 指定绑定menubar的action类名
JavaPackage Name 指定action所属包名
Action Enable 设定Action 的enabled状态对于为选择单项Single还是多项multiple的情形.
 
点击Finish, EclipseRCP将为我们自动配置生成相关的类.
 
3. 点击Finish后, 我们在All Extensions栏会发现增加了org.eclipse.ui.popupMenus的extension:

 
3.1 如图, 对应于popupMenus, 右键单击, 在弹出popupmenu中的new选项中我们可以发现对应有两个选项.分别是objectContribution, 与viewerContribution. 
其中, objectContribution 对应生成的popupmenu针对于如工程, 文件夹, 文件类的选项;
     viewerContribution则针对于视图的popupmenu
 
选中Contribution, 我们在右侧可以进行相应的details设定, 如图:

     id作为contribution的标准
     objectClass 指定应用的object类型
     nameFilter: 可以针对显示该菜单项的Object的名称进行过滤选择, 如objectClass针对IFile, nameFilter 填充*.html, 则我们添加的menu仅对于*.html文件的popupmenu中才会出现.
 
2. 查看contribution子选项action栏的details设定:
     

 
此处仅对menubarPath进行解释, 该选项可以指定action所属的父menu, 如果为空, 则在popupmenu中直接显示该Action对应的menubar选项.
 
上图指定menubarPath为: PopupMenuDemo.menu1/group1
 
其中: PopupMenuDemo是在Contribution中定义的menu的id, 在该menu中我们指定了一个分组separator名为group1:
 

通过这一指定, 可以使我们的Action menubar归类为menu NewSubmenu的子menubar呈现在弹出的popup menu之中.
 
3. 运行, 最终效果如图:

至此, 添加一个popup的具体实现简要操作流程已全部完成, 至于其余menu bar, tool bar 其中一些选项的作用, 读者可自己进行相关尝试了解其作用.

posted on 2012-09-01 13:51  Gnod  阅读(2007)  评论(0)    收藏  举报