`

RCP View右键弹出菜单的使用

 
阅读更多

在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的Navigator例子源代码(包括修改默认的new右键菜单)

    RCP popupMene高级教程 使用Visibility定制弹出菜单

    创建一个rcp工程,模板使用有一个view的 step2.创建popupMenu step2_1.新建类Action1: step2_2.添加扩展点: 好的step2已经结束了,现在您可以运行一下程序,看看效果. 接下来将要进行的是,只有选中Three时...

    RCP自定义透视图切换按钮的右键菜单

    代码demo和ppt介绍;用org.eclipse.ui.presentationFactories扩展点RCP自定义透视图切换按钮的右键菜单,去除Editor的右键菜单和关闭按钮;

    RCP弹出日期控件

    RCP系统使用的弹出式日期控件,可切换上月下月,前一年后一年,可选择年、月

    plugin2_RCP菜单_teamcenter_

    Teamcenter软件RCP端右键菜单开发,工具栏菜单开发,代码为plugin.xml的配置。

    RCP 菜单与工具栏小结

    RCP 菜单与工具栏小结

    eclipse 3.6 rcp 开发

    Eclipse RCP允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序,可重用Eclipse中已存在的方法和编码模式。俗话说,万事开头难。Eclipse RCP入手可能会比较困难、费时。接下来我们将主要讲述如何让RCP工作. ...

    eclipse rcp 自学教程

    clipse RCP允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序,可重用Eclipse中已存在的方法和编码模式。俗话说,万事开头难。Eclipse RCP入手可能会比较困难、费时。接下来我们将主要讲述如何让RCP工作 ...

    RCP入门 View Editor

    RCP入门: 1.View 2.Editor

    eclipse rcp 开发实例 (源码下载)

    前一段时间学习eclipse rcp开发写的一个学习用的工程。涉及了我当时学到的一些方面。 当时想找一个可以用来学习的简单的源代码真难,有的都是复杂的。 这里提供一个简单的工程。...右键、菜单、双击等事件

    Eclipse rcp深入浅出中英文版及配套代码

    Eclipse RCP深入浅出这本书很不错,但奈何网上都是些电子版,想要找到与它配套的源代码那是相当的头疼,这里提供了中英文电子版书及配套代码供大家使用,大家可以方便的学习。

    eclipse rcp 菜单小例子

    eclipse rcp project,主要是配置菜单, 编码生成菜单。与RCP 学习里面的内容对应。

    RCP,RCP开发

    RCP&OSGI;

    RCP在线升级,RCP在线升级

    RCP在线升级RCP在线升级RCP在线升级RCP在线升级RCP在线升级

    Eclipse 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开发教程

    Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT

    java中RCP中使用JNI

    java中RCP中使用JNI

    RCP4_ROD使用说明书

    RCP4_ROD使用说明书是IAI操作手册

    Eclipse RCP深入浅出原版教程

    Eclipse Rcp 原版教程跟书上一样滴

    plugin1_RCP菜单_teamcenter_

    Teamcenter软件RCP端一、二级主菜单开发,文件菜单下的二级菜单开发,代码为plugin.xml的配置。

Global site tag (gtag.js) - Google Analytics