快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
其 menubarPath 应为:

org.eclipse.search.menu/dialogGroup

注意:如果采用上述方式添加一个菜单项到 Search 主菜单,当我们运行时并没有出现添加的菜单项 ,这时候需要换一个 workspace,其原因是 Eclipse 缓存了与其相关的某些信息在 workspace 当中。

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

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

上下文菜单的扩展点

上下文菜单除了通过 Commands 和 Actions 方式添加,还可以使用扩展点 org.eclipse.ui.popupMenus 方式添加,下面分别进行介绍。

1、上下文菜单(Commands 方式)

Commands 方式与添加视图菜单和主菜单的方式一样,通过设定其 menuContribution 的 locationURI 来实现。

例如,添加一个上下文菜单到 Problems 视图中,其 locationURI 为:

popup:org.eclipse.ui.views.ProblemView?after=additions。

如果我们想让某个上下文菜单项出现在任何区域,则可以使用下面的 locationURI:

popup:org.eclipse.ui.popup.any?after=additions

2、上下文菜单(Actions 方式)

Actions 方式没有直接提供扩展点添加上下文菜单,但是我们可以通过编程的方式实现,如下代码清 单 1 为 TreeViewer 添加上下文菜单,通过 IMenuManager 的 add 方法添加 actions。

清单 1. 通过 Actions 方式编程实现添加上下文菜单

private void hookContextMenu() {    IMenuManager fMenuMgr = new MenuManager(“#PopupMenu”);    fMenuMgr.setRemoveAllWhenShown(true);    // 添加 Actions    fMenuMgr.add(action … )    fMenuMgr.createContextMenu(treeViewer.getControl());    treeViewer.getControl().setMenu(fMenu);    getSite().registerContextMenu(fMenuMgr, treeViewer);   }

3、上下文菜单(popupMenus 方式)

通过 popupMenus 扩展点实现上下文菜单,需要设定 objectContribution 的 objectClass 属性把上 下文菜单添加到相应的区域。

例如,如果我们想当用户点击 Eclipse 中的资源时,弹出的上下文菜单包括某个菜单项,我们可以设 定 objectClass 属性为:

org.eclipse.core.resources.IResource

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

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

通过 Commands 方式创建菜单项

通过 Commands 方式创建菜单项,首先需要创建 Command,通过扩展点 org.eclipse.ui.commands, 然后我们可以把这个 Command 放到任何区域,上一小节已经讲到,通过 org.eclipse.ui.menus 扩展点 确定菜单创建的区域,最后通过扩展点 org.eclipse.ui.handlers 定义这个 command 的具体行为。

在创建 Command 时,我们可以先创建一个 Category,并把相关的一些命令放到这个 Category 中, 这样有利于管理。代码清单 2 创建一个 Command(“Show in Glossary Explorer”),并放到一个 Category 中,然后把该 Command 放到 BGSearchResultView 视图的上下文菜单中,最后通过扩展 org.eclipse.ui.handlers 定义该 Command 的实现类。

清单 2. 通过 Commands 方式添加菜单项

<!-- 添加 command -->   <extension     point="org.eclipse.ui.commands">    <category     description="Business Glossary"     id="com.ibm.bg.ui.commands.category"     name="%category.BusinessGlossary.name">    </category>    <command     categoryId="com.ibm.bg.ui.commands.category"     description="Show in Glossary Explorer"     id="com.i

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号