快速业务通道

Eclipse插件开发 - 深入理解菜单(Menu)功能及其扩展点 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
s/assign.png"        id="com.ibm.bg.internal.uml.actions.BGAssignToGlossary"        label="%BGAssignToGlossary.item"        menubarPath="com.ibm.bg.uml.popupMenuGroup">     </action>    </objectContribution>   </extension>

Eclipse插件开发 - 深入理解菜单(Menu)功能及其扩展点(7)

时间:2011-10-22 IBM 敖建旺

菜单控制

视图菜单的控制主要包括启用 / 禁用,显示 / 隐藏菜单。

通过 Command 方式创建的菜单,可以通过 org.eclipse.ui.commands 的 visibleWhen 属性控制菜单 的隐藏和显示,通过 org.eclipse.ui.handlers 的 activewhen 或 enabledWhen 控制菜单的启用或禁用 。

通过 Actions 方式创建的菜单,可以通过 action 的 enablement 属性控制菜单的启用 / 禁用。

通过 popupMenus 方式创建的菜单,可以通过 objectContribution 的 visibility 和 enablement 来设置该 objectContribution 下的 action 的显示 / 隐藏和启用 / 禁用,我们也可以设置 action 的 enablement 来控制该菜单的启用 / 禁用。

这里不详细讲述 enablement,visibleWhen 和 enabledWhen 的参数及如何设置,读者可以参考第三 节的例子和本文的参考文献。

编程实践

本文将结合前两节讲到的知识,以例子的形式说明如何创建并且控制菜单。首先创建一个视图(Menu Example),然后分别通过 Commands,Actions 和 popupMenus 方式创建若干个菜单,并添加相应的菜单 控制点。

创建 Menu Example 视图

扩展 org.eclipse.views 创建“Menu Example”视图,如下代码清单 5 为创建视图的 xml 代码。

清单 5. 扩展 org.eclipse.ui.views 创建视图

<extension     point="org.eclipse.ui.views">    <category       id="com.free.menu.category"       name="Menu Example View">    </category>    <view       category="com.free.menu.category"       class="com.free.menu.view.MenuExplorer"       id="com.free.menu.view.MenuExplorer"       name="Menu Explorer"       restorable="true">    </view>   </extension>

创建 Commands

采用 Command 方式创建“Menu Example”主菜单(包含 AngryCommand 和 JokeCommand 两个菜单项 ),并且基于这两个菜单项创建了 Menu Example 视图的下拉菜单和工具栏菜单,及其 TreeViewer 的上 下文菜单。

如下代码清单 6 为扩展 org.eclipse.ui.commands 创建 Menu Example 命令和类别,并且包含两个 命令:Joke Command 和 Angry Command。

清单 6. 扩展 org.eclipse.ui.commands 创建命令

<extension     point="org.eclipse.ui.commands">    <category       id="com.free.menu.category"       name="Menu Example">    </category>    <command       categoryId="com.free.menu.category"       id="com.free.menu.commands.jokeCommand"       name="Joke Command">    </command>    <command       categoryId="com.free.menu.category"       id="com.free.menu.commands.angryCommand"       name="Angry Command">    </command>   </extension>

Eclipse插件开发 - 深入

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号