在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_"所涉及的核心知识点,以及如何通过`plugin.xml`配置文件来开发和定制RCP的菜单和工具栏。 1. **RCP(Rich Client Platform)**:RCP是Eclipse框架的一部分...
在探讨RCP菜单与工具栏小结之前,我们先来明确一下RCP(Rich Client Platform)的概念。RCP是Eclipse平台的一部分,用于构建复杂的、数据丰富的桌面应用程序。它提供了强大的框架和工具集,使开发者能够创建具有高度...
这个压缩包包含了RCP应用中关于Navigator的一个示例,以及如何自定义“新建”(New) 右键菜单的操作。 在RCP应用中,Navigator视图是通过`org.eclipse.ui.navigator`插件提供的,这个插件包含了展示和管理工作台资源...
在IT行业中,Eclipse RCP(Rich Client Platform)是一种基于Java的框架,用于构建桌面应用程序。它提供了构建可扩展、模块化应用的基础。RCP应用通常由多个组件组成,而这些组件可以通过插件(Plugin)的形式进行...
本教程将详细介绍如何通过`org.eclipse.ui.presentationFactories`扩展点来实现这一目标,以及如何去除Editor的右键菜单和关闭按钮,提升用户体验。 透视图是Eclipse RCP中的一个重要概念,它定义了工作台窗口中各...
在这个“eclipse rcp 菜单小例子”项目中,我们将深入探讨如何在Eclipse RCP应用中创建和配置菜单,以及如何通过`visibleWhen`标签控制菜单项的可见性。 首先,让我们了解Eclipse RCP中的菜单结构。菜单主要分为三...
本文将深入探讨“plugin1_RCP菜单_teamcenter_”这一主题,重点讲解如何在Teamcenter的RCP(Rich Client Platform)环境中开发一级和二级主菜单,并通过配置plugin.xml文件来实现这一功能。 首先,让我们理解什么是...
**RCP(Rich Client Platform)与OSGI详解** **RCP概述** RCP,全称为Rich Client Platform,是由Eclipse基金会开发的一种软件框架,主要用于构建功能丰富的桌面应用程序。RCP提供了一个灵活的基础平台,允许开发者...
在IT领域,特别是软件开发中,RCP(Rich Client Platform)是一种基于Eclipse框架的应用程序开发模型,它允许开发者创建功能丰富的桌面应用程序。RCP弹出日期控件是这种环境中用于用户界面交互的一个重要组件,它...
总之,这个“eclipse rcp excel表转mysql程序”项目结合了Eclipse RCP的桌面应用开发能力、Apache POI的Excel处理功能以及JDBC的数据库操作,实现了从Excel数据到MySQL数据库的自动化转换。开发者可以通过学习和理解...
TC13-Teamcenter开发模式主要涉及使用Eclipse RCP(Rich Client Platform)进行应用程序的构建。RCP是Eclipse框架的一部分,它提供了一个可扩展的平台,用于创建桌面应用程序,特别适合企业级的定制化开发。在...
在操作和维护方面,RCP-1500系列遥控面板提供了一个详细的菜单系统,包括菜单操作、状态画面、着色菜单、文件菜单、维护菜单和配置菜单等。用户可以通过这些菜单来进行高级的配置和设置,以确保设备的性能达到最佳。...
在RCP菜单中的"Event Listener"模式可能是指如何在RCP应用的菜单系统中添加事件监听器,以便当用户执行特定操作时,如点击菜单项,可以触发相应的逻辑处理,例如数据的收集和上传。 在RCP应用中,事件监听是常见的...
创建一个rcp工程,模板使用有一个view的 step2.创建popupMenu step2_1.新建类Action1: step2_2.添加扩展点: 好的step2已经结束了,现在您可以运行一下程序,看看效果. 接下来将要进行的是,只有选中Three时...
除了编码方式,RCP还支持通过XML描述的扩展点来动态地添加菜单和工具栏。这种方式更灵活,允许在不修改代码的情况下调整用户界面,适合于需要频繁更新的场景。 #### 五、添加组合键 ##### 1. 概述 组合键是提高...
RCP应用通常拥有和Eclipse类似的外观与操作体验,例如动态的菜单栏(Menubar)、工具栏(Toolbar)、编辑器(Editor)、视图(View)、工作台窗口(WorkbenchWindow)以及工作区(WorkSpace)等。这些组件共同构成了...
RCP欢迎界面设计 RCP(Rich Client Platform)是一种基于Eclipse平台的富客户端应用程序开发架构。它提供了一系列的扩展点和API,允许开发者轻松地构建复杂的桌面应用程序。本文将详细介绍RCP欢迎界面设计的知识点...
本文主要介绍如何将一个基于Eclipse RCP(Rich Client Platform)的工程转换为可以在浏览器中运行的RAP(Rapid Application Platform)工程。RCP和RAP都是Eclipse基金会开发的框架,前者用于构建桌面应用程序,后者...
RCP(Rich Client Platform)是Eclipse开源框架的一部分,它为构建桌面应用程序提供了一个灵活的平台。RCP在线升级是指在不卸载原有版本的情况下,通过网络更新来安装RCP应用的新版本,以确保用户始终能够使用最新...