我们知道在Eclipse中有一个org.eclipse.ui.popupMenus扩展点,可以对现在的视图或对象的右键菜单进行扩展。
如果我们定义了一个View,并且里面有一个Viewer,那么我们怎么让自己的Viewer上的对象也能获取对该对象的扩展菜单呢?这里就做一个简单的介绍。
一、显示菜单
首先,我们要让这个Viewer支持右键菜单,如下:
MenuManager menus = new MenuManager();
Menu menu = menus.createContextMenu(viewer.getTree());
viewer.getTree().setMenu(menu);
要使得一个viewer的右键菜单可以扩展,我们需要注册这个菜单。如下:
getSite().registerContextMenu(menus, viewer);
这样就完了。假如我们树上的结点模型为FileModel,那么,如果有以下扩展定义:
<extension
point="org.eclipse.ui.popupMenus">
<objectContribution
adaptable="true"
id="com.tibco.cdc.liugang.viewer.objectContribution1"
nameFilter="*.*"
objectClass="com.tibco.cdc.liugang.viewer.models.FileModel">
<action
class="com.tibco.cdc.liugang.viewer.actions.PrintName"
enablesFor="1"
icon="icons/sample.gif"
id="com.tibco.cdc.liugang.viewer.action1"
label="Print"
menubarPath="additions"
style="push"/>
</objectContribution>
</extension>
那么,当我们在树节点上点右键时,可以看到有一个名为"print"的菜单出现。
二、定义菜单位置
通常,我们定义一个菜单扩展的时候,都会给出一个menubarPath,例如经常使用的"additions"。有menu中,我们可以预先定义一些menubarPath,用于控制菜单项的顺序/位置。例如:
String MB_ADDITIONS = "additions";
menus.add(new Separator(MB_ADDITIONS));
三、注意事项
有一些事项需要注意。如果我们给MenuManager增加了IMenuListener事件,并且在它的menuAboutToShow方法里有添加菜单的操作,那么我们需要在定义MenuManager的时候进行以下调用:
menus.setRemoveAllWhenShown(true);
否则,会出现重复菜单。
如果一些初始菜单是直接定义的,那就不需要调用这个方法,以免把已有的菜单移除了。
基于以上原则,请不要在多处定义初始菜单,例如,请不要如下定义:
menus.add(action1);
menus.addMenuListener(new IMenuListener(){
public void menuAboutToShow(IMenuManager manager) {
menus.add(action2);
}
});
要么就全在menuAboutToShow方法内定义,并调用menus.setRemoveAllWhenShown(true);否则全在该方法外定义并且不设置menus.setRemoveAllWhenShown(true);
分享到:
相关推荐
在IT行业中,XML(可扩展标记语言)被广泛应用于数据交换、配置文件、文档存储等多个领域,因此,一个强大的XML查看和管理工具对于开发者和系统管理员来说至关重要。 首先,我们要了解XML的基本概念。XML是一种自...
2. 在下拉菜单中选择 "Plugin Manager",这将打开一个插件管理界面,列出可供安装的各种插件。 3. 在插件管理界面中,并没有直接提供 JSON Viewer 的安装选项,因此需要手动下载 ZIP 格式的插件文件。你可以从 ...
通过右键单击指向IIIF清单的链接,将显示上下文菜单项“在IIIF查看器中打开链接”,该菜单项允许您在首选的IIIF查看器中打开该链接。选件在选项页面上,根据主要要使用的IIIF查看器设置URL字段。 例如: 在IIIF ...
看到文档链接(即.doc,.docx,.ppt,.pdf)后,请右键单击该链接,然后从上下文菜单中选择“查看文档”。该文档将被渲染并在新选项卡中打开。您也可以将文档打印为PDF或立即将其发送到打印机。请注意,此加载项使用...
通过实现`INavigatorActionProvider`接口,你可以定义一个动作提供者类,该类将决定哪些操作应该出现在菜单中。以下是一个简单的例子: ```java public class MyActionProvider implements ...
在打开的文件夹中找到Digital Photo Professional的可执行文件(通常为.dpp或.exe扩展名),再次右键点击,选择“属性”,然后切换到“兼容性”标签页。 **步骤4:调整兼容模式** 在“兼容性”选项中,用户可以选择...
总的来说,Eclipse的便捷性体现在其强大的文件管理和导航能力上,通过右键菜单的多种选项,开发者可以轻松地在IDE内和文件系统之间切换,快速定位并操作JAR包和其他项目资源,这对于提高开发效率和维护代码质量具有...
•工具栏和开始菜单均可配置:将常用的DOS或Windows程序加入开始菜单中,运行程序时自动调用光标处的文件和/或文件夹。 •主菜单也可以配置。 •内置文件查看程序:以十六进制、二进制或文本方式查看任意大小的文件...
看到文档链接(即.doc,.docx,.ppt,.pdf)后,请右键单击该链接,然后从上下文菜单中选择“查看文档”。 该文档将被渲染并在新选项卡中打开。 您也可以将文档打印为PDF或立即将其发送到打印机。 请注意,此加载项...
Chrome扩展程序源查看器(CRX ...可以通过右键单击扩展按钮时出现的“单击时的主要操作”菜单来更改默认操作(显示上述选项)。 “查看源代码”选项使用一个简单的查看器打开一个新标签,该标签具有以下功能: 右上
2. **关联JAD**:在JadClipse首选项页面中,点击`Class File Viewer`,然后在`JAD Path`中指定`jad.exe`的路径。`jad.exe`是一个反编译器,可以将`.class`文件转换为更易读的Java源代码形式。确保已将`jad.exe`文件...
总的来说,“Twilight Viewer”是一款集简洁、实用、可扩展于一体的开源图像查看器。它不仅为用户提供了一种高效查看和处理图像的方式,还通过开源的方式激发了社区的创新活力,促进了软件的持续发展。对于那些希望...
* 单击工具栏上的“显示隐藏树状目录”按钮可以显示隐藏目录树窗格,目录树窗格的右键菜单可完成目录树的一些常规操作; * 单击工具栏上的“选择切换图标查看模式”按钮可以切换或选择记录窗格的图标查看模式; *...
•工具栏和开始菜单均可配置:将常用的DOS或Windows程序加入开始菜单中,运行程序时自动调用光标处的文件和/或文件夹。 •主菜单也可以配置。 •内置文件查看程序:以十六进制、二进制或文本方式查看任意大小的...
打开“设置” > “应用” > “默认应用”,滚动到“照片”部分,点击当前设置的默认应用(通常是“Windows照片”),然后在下拉菜单中选择“其他应用”,找到并选择“Windows 7照片查看器”。 接下来,为了能够打开...
在某些特定的SVG浏览器,如Adobe SVG Viewer 3.0,还有额外的对象如`contextMenu`,可以用来定制右键菜单。 JavaScript脚本可以在SVG文件中内嵌,或者通过`xlink:href`属性链接到外部文件。内嵌的脚本通常用于SVG...
Notepad++是一款非常受欢迎的免费源代码编辑器,尤其在Windows操作系统中被广泛使用。它支持多种编程语言,且基于...Notepad++的可扩展性和丰富的插件库是其魅力所在,也是它能够在众多文本编辑器中脱颖而出的原因。
安装扩展,然后右键单击要在其中插入新OIB的任何输入字段。 将显示菜单项“ Generate OIB”(生成OIB),然后单击它,将生成新的OIB并将其插入到字段中。 它是如何工作的 通过首先生成10个随机数字,然后计算用于...
5. **使用反编译功能**:现在你可以在Eclipse中右键点击任何.jar或.class文件,选择"Open With" -> "JD-Eclipse Source Viewer",即可查看源代码。反编译的结果可能并不完全与原始源代码相同,但通常足以理解和分析...
将上下文菜单项添加到PDF Viewer中的Adobe Acrobat Reader(如adobe Acrobat Reader)中的PDF查看器发送PDF链接“扩展名在默认的PDF查看器应用程序中直接打开PDF文件。要使用扩展,请右键单击PDF链接,然后选择“在...