java - 如何从 Eclipse-RCP 中的导入向导中删除类别?

标签 java eclipse-rcp wizard plugin.xml

我需要在我的 eclipse-rcp 应用程序中添加一个导入向导。为此,我想将现有向导仅用于我的类别。我在 Internet 上找到了几个示例,但它们并没有多大帮助。

我的问题是我不仅有我的类别,还有一般类别。如果可能的话,我想删除它。其实我找到了一个解决方案here ,但它似乎不起作用。我试图将提供的代码片段放入 WorkbrenchWindowAdvisor 和 ActionBarAdvisor 中,甚至在创建我的向导之前执行它,但仍然存在具有 5 个可能向导的常规类别。有什么建议,如何删除它或至少隐藏它?

BR, AlexG.

最佳答案

您可以使用 org.eclipse.ui.activities 选择哪些贡献在您的 RCP 应用程序中可见具有适当 activityPatternBinding 的扩展点(尽管他们在您链接的页面上说了什么)。

使用这个扩展点,您可以定义一个 Activity ,其模式匹配除您自己的贡献之外的任何内容(例如 pattern="[^\.]++\.(?!myplugin).*" 匹配 ID-s 不以 com.myplugin 开头的贡献)。此 Activity 在未启用时将从 UI 中排除除您自己之外的所有贡献。

对于另一个 Activity ,您将定义一个模式,其中包括您希望从其他插件中包含的贡献(例如,pattern=".*file\.import" 匹配 Import...文件菜单中的菜单项)。这是您将在 WorkbenchAdvisor 中启用的 Activity 使用

PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(...);

请注意,此特定解决方案将禁用(几乎)所有 Eclipse 贡献,除了 File > Import... 如果您想启用大量功能并仅禁用小部分功能,则需要进行大量挖掘。但最有可能找出正确的模式来实现这一目标。

关于java - 如何从 Eclipse-RCP 中的导入向导中删除类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8112012/

相关文章:

java - Nashorn java.lang.NoClassDefFoundError : jdk/nashorn/api/scripting/JSObject

java - 如何在 RCP 插件加载时启动守护进程

c# - 在 C# 2.0 中创建向导的最佳方法是什么?

python - 绕过软件向导并使用默认参数安装

java - 包 javax.servlet.annotation 不存在

Java:找不到符号

java - 从另一个组件更新组件的状态

eclipse - 共享 Eclipse RCP 项目目标平台的最佳方式

python - 如何根据 ids 搜索(向导)填充 many2many 字段

java - 一个让我困惑的简单字符串查询