在RCP里,Viewer可以拥有自己的右键弹出菜单,Eclipse提供了2种方式控制弹出菜单,一种是编码实现,另一种是通过扩展点org.eclipse.ui.popupMenus实现。
不管是哪种方式实现,都必须先在Viewer中添加右键菜单(MenuManager),一般在Viewer的createPartControl(Composite parent)中,加入如下代码:
public void createPartControl(Composite parent) {
viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL);
viewer.setContentProvider(new ViewContentProvider());
viewer.setLabelProvider(new ViewLabelProvider());
viewer.setInput(getViewSite());
createContextMenu();
}
private void createContextMenu() {
MenuManager menuManager = new MenuManager();
menuManager.setRemoveAllWhenShown(true);
menuManager.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
fillContextMenu(manager);
}
});
Menu menu = menuManager.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
getSite().setSelectionProvider(viewer);
getSite().registerContextMenu(menuManager, viewer);
}
使用编码的方式添加菜单项就要使用fillContextMenu()方法了。
protected void fillContextMenu(IMenuManager menu) {
menu.add(ActionFactory.QUIT.create(getSite().getWorkbenchWindow()));
menu.add(new Separator());
menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS
+ "-end"));
menu.add(ActionFactory.ABOUT.create(getSite().getWorkbenchWindow()));
}
这里添加了2个Eclipse自带的Exit和About菜单项。
通过org.eclipse.ui.popupMenus方式添加菜单项,相对比较灵活一些:
<extension
point="org.eclipse.ui.popupMenus">
<viewerContribution
id="org.salever.rcp.viewaction.demo.viewerContribution1"
targetID="org.salever.rcp.viewaction.demo.view">
<menu
id="org.salever.rcp.viewaction.demo.menu1"
label="New Submenu"
path="additions">
<separator
name="group1">
</separator>
</menu>
<action
class="org.salever.rcp.viewaction.demo.popup.actions.NewAction"
id="org.salever.rcp.viewaction.demo.newAction"
label="New Action"
menubarPath="org.salever.rcp.viewaction.demo.menu1/group1">
</action>
</viewerContribution>
</extension>
这里org.salever.rcp.viewaction.demo.popup.actions.NewAction必须实现IViewActionDelegate。
分享到:
相关推荐
RCP的Navigator例子源代码(包括修改默认的new右键菜单)
创建一个rcp工程,模板使用有一个view的 step2.创建popupMenu step2_1.新建类Action1: step2_2.添加扩展点: 好的step2已经结束了,现在您可以运行一下程序,看看效果. 接下来将要进行的是,只有选中Three时...
代码demo和ppt介绍;用org.eclipse.ui.presentationFactories扩展点RCP自定义透视图切换按钮的右键菜单,去除Editor的右键菜单和关闭按钮;
RCP系统使用的弹出式日期控件,可切换上月下月,前一年后一年,可选择年、月
Teamcenter软件RCP端右键菜单开发,工具栏菜单开发,代码为plugin.xml的配置。
RCP 菜单与工具栏小结
Eclipse RCP允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序,可重用Eclipse中已存在的方法和编码模式。俗话说,万事开头难。Eclipse RCP入手可能会比较困难、费时。接下来我们将主要讲述如何让RCP工作. ...
clipse RCP允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序,可重用Eclipse中已存在的方法和编码模式。俗话说,万事开头难。Eclipse RCP入手可能会比较困难、费时。接下来我们将主要讲述如何让RCP工作 ...
RCP入门: 1.View 2.Editor
前一段时间学习eclipse rcp开发写的一个学习用的工程。涉及了我当时学到的一些方面。 当时想找一个可以用来学习的简单的源代码真难,有的都是复杂的。 这里提供一个简单的工程。...右键、菜单、双击等事件
Eclipse RCP深入浅出这本书很不错,但奈何网上都是些电子版,想要找到与它配套的源代码那是相当的头疼,这里提供了中英文电子版书及配套代码供大家使用,大家可以方便的学习。
eclipse rcp project,主要是配置菜单, 编码生成菜单。与RCP 学习里面的内容对应。
RCP&OSGI;
RCP在线升级RCP在线升级RCP在线升级RCP在线升级RCP在线升级
1.2.Eclipse RCP 建设风格——插件,扩展和扩展点 1 2.创建你的第一个RCP程序 1 2.1.创建一个RCP程序 2 2.2.启动你的RCP程序 5 2.3.应用程序VS 产品 6 3.应用程序里的插件ID 7 4.Actions的用法(菜单和...
Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT
java中RCP中使用JNI
RCP4_ROD使用说明书是IAI操作手册
Eclipse Rcp 原版教程跟书上一样滴
Teamcenter软件RCP端一、二级主菜单开发,文件菜单下的二级菜单开发,代码为plugin.xml的配置。