`
fkyq01
  • 浏览: 38524 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

RCP去掉多余菜单(转)

阅读更多
在Eclipse RCP开发中,如果你的dependencies中包含了org.eclipse.ui.ide,在创建菜单栏是你会发现出现了多余的菜单项,例如"Convert Line Delimiters to"和"Last Edit Location"这两个菜单项。如何去掉这些多余的菜单项呢?

可以在你的ApplicationActionBarAdvisor类中添加如下代码(可以在makeActions方法中调用以下代码):

Java代码
/* 
* 去掉因为导入依赖包(org.eclipse.ui.ide)而产生的多余的菜单项,一般 
* 情况下包括三个 
*/ 
@SuppressWarnings("restriction")  
public void removeDuplicateAction()  
{  
    ActionSetRegistry reg = WorkbenchPlugin.getDefault().getActionSetRegistry();  
    IActionSetDescriptor[] actionSets = reg.getActionSets();  
    // removing annoying gotoLastPosition Message.  
    String actionSetId = "org.eclipse.ui.edit.text.actionSet.navigation"; //$NON-NLS-1$  
    for (int i = 0; i <actionSets.length; i++)  
    {  
        if (!actionSets[i].getId().equals(actionSetId))  
            continue;  
            IExtension ext = actionSets[i].getConfigurationElement()  
                .getDeclaringExtension();  
            reg.removeExtension(ext, new Object[] { actionSets[i] });  
    }  
    // Removing convert line delimiters menu.  
    actionSetId = "org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo"; //$NON-NLS-1$  
    for (int i = 0; i <actionSets.length; i++)  
    {  
        if (!actionSets[i].getId().equals(actionSetId))  
            continue;  
        IExtension ext = actionSets[i].getConfigurationElement()  
                .getDeclaringExtension();  
       reg.removeExtension(ext, new Object[] { actionSets[i] });  
    }  
    actionSetId = "org.eclipse.ui.actionSet.openFiles";  
    for (int i = 0; i <actionSets.length; i++)  
    {  
        if (!actionSets[i].getId().equals(actionSetId))  
            continue;  
        IExtension ext = actionSets[i].getConfigurationElement()  
                .getDeclaringExtension();  
       reg.removeExtension(ext, new Object[] { actionSets[i] });  
    }  


    /*
     * 去掉因为导入依赖包(org.eclipse.ui.ide)而产生的多余的菜单项,一般
     * 情况下包括三个
     */
    @SuppressWarnings("restriction")
    public void removeDuplicateAction()
    {
    ActionSetRegistry reg = WorkbenchPlugin.getDefault().getActionSetRegistry();
    IActionSetDescriptor[] actionSets = reg.getActionSets();
    // removing annoying gotoLastPosition Message.
    String actionSetId = "org.eclipse.ui.edit.text.actionSet.navigation"; //$NON-NLS-1$
    for (int i = 0; i <actionSets.length; i++)
    {
        if (!actionSets[i].getId().equals(actionSetId))
            continue;
            IExtension ext = actionSets[i].getConfigurationElement()
                .getDeclaringExtension();
            reg.removeExtension(ext, new Object[] { actionSets[i] });
    }
    // Removing convert line delimiters menu.
    actionSetId = "org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo"; //$NON-NLS-1$
    for (int i = 0; i <actionSets.length; i++)
    {
        if (!actionSets[i].getId().equals(actionSetId))
            continue;
        IExtension ext = actionSets[i].getConfigurationElement()
                .getDeclaringExtension();
       reg.removeExtension(ext, new Object[] { actionSets[i] });
    }
    actionSetId = "org.eclipse.ui.actionSet.openFiles";
    for (int i = 0; i <actionSets.length; i++)
    {
        if (!actionSets[i].getId().equals(actionSetId))
            continue;
        IExtension ext = actionSets[i].getConfigurationElement()
                .getDeclaringExtension();
       reg.removeExtension(ext, new Object[] { actionSets[i] });
    }
    }
 

分享到:
评论

相关推荐

    plugin2_RCP菜单_teamcenter_

    在本话题中,我们将深入探讨"plugin2_RCP菜单_teamcenter_"所涉及的核心知识点,以及如何通过`plugin.xml`配置文件来开发和定制RCP的菜单和工具栏。 1. **RCP(Rich Client Platform)**:RCP是Eclipse框架的一部分...

    RCP 菜单与工具栏小结

    在探讨RCP菜单与工具栏小结之前,我们先来明确一下RCP(Rich Client Platform)的概念。RCP是Eclipse平台的一部分,用于构建复杂的、数据丰富的桌面应用程序。它提供了强大的框架和工具集,使开发者能够创建具有高度...

    RCP的Navigator例子源代码(包括修改默认的new右键菜单)

    这个压缩包包含了RCP应用中关于Navigator的一个示例,以及如何自定义“新建”(New) 右键菜单的操作。 在RCP应用中,Navigator视图是通过`org.eclipse.ui.navigator`插件提供的,这个插件包含了展示和管理工作台资源...

    RCP形式转换成插件形式

    在IT行业中,Eclipse RCP(Rich Client Platform)是一种基于Java的框架,用于构建桌面应用程序。它提供了构建可扩展、模块化应用的基础。RCP应用通常由多个组件组成,而这些组件可以通过插件(Plugin)的形式进行...

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

    本教程将详细介绍如何通过`org.eclipse.ui.presentationFactories`扩展点来实现这一目标,以及如何去除Editor的右键菜单和关闭按钮,提升用户体验。 透视图是Eclipse RCP中的一个重要概念,它定义了工作台窗口中各...

    eclipse rcp 菜单小例子

    在这个“eclipse rcp 菜单小例子”项目中,我们将深入探讨如何在Eclipse RCP应用中创建和配置菜单,以及如何通过`visibleWhen`标签控制菜单项的可见性。 首先,让我们了解Eclipse RCP中的菜单结构。菜单主要分为三...

    plugin1_RCP菜单_teamcenter_

    本文将深入探讨“plugin1_RCP菜单_teamcenter_”这一主题,重点讲解如何在Teamcenter的RCP(Rich Client Platform)环境中开发一级和二级主菜单,并通过配置plugin.xml文件来实现这一功能。 首先,让我们理解什么是...

    RCP,RCP开发

    **RCP(Rich Client Platform)与OSGI详解** **RCP概述** RCP,全称为Rich Client Platform,是由Eclipse基金会开发的一种软件框架,主要用于构建功能丰富的桌面应用程序。RCP提供了一个灵活的基础平台,允许开发者...

    RCP弹出日期控件

    在IT领域,特别是软件开发中,RCP(Rich Client Platform)是一种基于Eclipse框架的应用程序开发模型,它允许开发者创建功能丰富的桌面应用程序。RCP弹出日期控件是这种环境中用于用户界面交互的一个重要组件,它...

    eclipse rcp excel表转mysql程序 源码

    总之,这个“eclipse rcp excel表转mysql程序”项目结合了Eclipse RCP的桌面应用开发能力、Apache POI的Excel处理功能以及JDBC的数据库操作,实现了从Excel数据到MySQL数据库的自动化转换。开发者可以通过学习和理解...

    TC13-Teamcenter开发模式之RCP-Eclipse 配置手册

    TC13-Teamcenter开发模式主要涉及使用Eclipse RCP(Rich Client Platform)进行应用程序的构建。RCP是Eclipse框架的一部分,它提供了一个可扩展的平台,用于创建桌面应用程序,特别适合企业级的定制化开发。在...

    RCP-1500中文操作手册.pdf

    在操作和维护方面,RCP-1500系列遥控面板提供了一个详细的菜单系统,包括菜单操作、状态画面、着色菜单、文件菜单、维护菜单和配置菜单等。用户可以通过这些菜单来进行高级的配置和设置,以确保设备的性能达到最佳。...

    rcp收集资料上传

    在RCP菜单中的"Event Listener"模式可能是指如何在RCP应用的菜单系统中添加事件监听器,以便当用户执行特定操作时,如点击菜单项,可以触发相应的逻辑处理,例如数据的收集和上传。 在RCP应用中,事件监听是常见的...

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

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

    RCP程序设计自学RCP的教程

    除了编码方式,RCP还支持通过XML描述的扩展点来动态地添加菜单和工具栏。这种方式更灵活,允许在不修改代码的情况下调整用户界面,适合于需要频繁更新的场景。 #### 五、添加组合键 ##### 1. 概述 组合键是提高...

    Eclipse Rcp

    RCP应用通常拥有和Eclipse类似的外观与操作体验,例如动态的菜单栏(Menubar)、工具栏(Toolbar)、编辑器(Editor)、视图(View)、工作台窗口(WorkbenchWindow)以及工作区(WorkSpace)等。这些组件共同构成了...

    rcp欢迎界面

    RCP欢迎界面设计 RCP(Rich Client Platform)是一种基于Eclipse平台的富客户端应用程序开发架构。它提供了一系列的扩展点和API,允许开发者轻松地构建复杂的桌面应用程序。本文将详细介绍RCP欢迎界面设计的知识点...

    RCP工程转成RAP,并在浏览器中运行

    本文主要介绍如何将一个基于Eclipse RCP(Rich Client Platform)的工程转换为可以在浏览器中运行的RAP(Rapid Application Platform)工程。RCP和RAP都是Eclipse基金会开发的框架,前者用于构建桌面应用程序,后者...

    RCP在线升级,RCP在线升级

    RCP(Rich Client Platform)是Eclipse开源框架的一部分,它为构建桌面应用程序提供了一个灵活的平台。RCP在线升级是指在不卸载原有版本的情况下,通过网络更新来安装RCP应用的新版本,以确保用户始终能够使用最新...

Global site tag (gtag.js) - Google Analytics