添加propertyTesters扩展点
作用:通过自定义的程序实现对菜单项的权限控制。
菜单项(command方式)配置如下:
以上配置表示当tester 返回true时,command对象可见。也可用false,但test实现类的test方法返回值要与之对应。
实现类如下(部分代码)
如何对自定义的右键菜单加权限控制
打开plugin.xml,在编辑器中打开“Extension”选项卡,添加一个新的扩展点”org.eclipse.ui.menus”,如果已有,可以不用添加.
菜单项(command方式)配置如下:
在“org.eclipse.ui.menus”扩展点上”new menuContribution”创建一个新的菜单项。
编辑菜单locationURL属性,
格式:<菜单类型>:<附着区域>?<位置>
其中
菜单类型:
popup 表示右键菜单
menu 工具栏菜单
附着区域:菜单将要出现在编辑器或视图的ID
如果要将菜单挂载在主菜单上,使用org.eclipse.ui.main.menu
位置: 用于定义菜单挂载的顺序
如:
1、menu:org.eclipse.ui.main.menu?after=additions
表示:该菜单加载到主菜单,位于addtions区域。(addtions表示非限定区域)
2、popup:SmartBranchManagement.navigationView?after=additions
表示:将菜单增加到ID为SmartBranchManagement.navigationView的视图上,并以右键菜单的形式追加在右键菜单最后。
创建Command对象
在”org.eclipse.ui.commands”扩展点下,右键”newàcommand”创建一个新的Command
编辑command的属性
实现defaultHandler所指向的实现类。及菜单项的功能逻辑。
在菜单下创建菜单项
选中需要增加菜单项的menuContribution,右键”new –>command”,选择一个”command”作为菜单的功能实现组件。
选择创建好的Command,并编辑MenuContribution属性,如下图所示:
设置菜单权限:
选择需要加入权限控制的菜单项(MenuContribution),右键”newàvisibleWhen”,
当tester执行结果为true时,显示菜单
创建一个”with”表达式:
设置varible为:activeSite,该值不可随意改动
选中新建的with节点,右键新增一个“test”子节点
编辑Test节点属性:
其中value使用该菜单项的id,该值填写错误会导致菜单权限验证失败。
以前一直潜水,第一次发帖,比较粗糙,见谅,本文对应的文档在我的资源中可下载