理解菜单(Menu)功能及其扩展点(8)
时间:2011-10-22 IBM 敖建旺
关联 Commands 到主菜单
如下代码清单 7 为扩展 org.eclipse.ui.menus,并基于前面创建的 Comands,添加一个主菜单 Menu Example,并且包含 Joke Command 和 Angry Command 菜单项。
清单 7. 创建 Menu Example 主菜单
<menuContribution
locationURI="menu:org.eclipse.ui.main.menu?after=additions">
<menu
id="com.free.menu.MenuExample"
label="Menu Example">
<command
commandId="com.free.menu.commands.jokeCommand"
style="push">
</command>
<command
commandId="com.free.menu.commands.angryCommand"
style="push">
</command>
</menu>
</menuContribution>
关联 Commands 到视图菜单
如下代码清单 8 为扩展 org.eclipse.ui.menus,并基于 Commands 方式创建 Menu Example 视图的 下拉菜单,工具栏菜单和上下文菜单,通过 locationURI 来设定。Joke Command 即为下拉菜单也是工具 栏菜单,只有当我们选择了 TreeViewer 中的节点时该菜单项才是可见的,参考下面的 visibleWhen- >with->iterate->or->instanceof。
清单 8. 通过 Commands 方式创建视图菜单
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="menu:com.free.menu.view.MenuExplorer?after=additions">
<command
commandId="com.free.menu.commands.jokeCommand"
icon="icons/searchres.gif"
style="push">
<visibleWhen
checkEnabled="false">
<with
variable="selection">
<iterate
ifEmpty="true"
operator="or">
<or>
<instanceof
value="com.free.menu.model.Person">
</instanceof>
</or>
</iterate>
</with>
</visibleWhen>
</command>
</menuContribution>
<menuContribution
locationURI="toolbar:com.free.menu.view.MenuExplorer?after=additions">
<command
commandId="com.free.menu.commands.jokeCommand"
icon="icons/searchres.gif"
style="push">
<visibleWhen
checkEnabled="false">
<with
variable="selection">
<iterate
ifEmpty="true"
operator="or">
<or>
|