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



我需要添加一个导入向导到我的eclipse-rcp应用程序。为此,我想使用现有的向导,只有我的类别。我在网上找到了一些例子,但是没有多大帮助。

我的问题是,我不仅有我的类别,还有一般类别。如果可能的话,我想把它去掉。实际上,我在这里找到了一个解决方案,但似乎它不起作用。我试图把提供的代码片段在WorkbrenchWindowAdvisor和ActionBarAdvisor,甚至在我的向导创建之前执行它,但一般类别与5个可能的向导仍然存在。有什么建议吗,如何移除它或者至少隐藏它?

BR,AlexG .

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

使用这个扩展点,你可以定义一个活动与模式匹配任何东西,但你自己的贡献(例如pattern="[^.]++.(?!myplugin).*"匹配贡献与ID-s不以com.myplugin开始)。此活动,当未启用时,将排除所有来自UI的贡献,除了你自己的。

在另一个活动中,您将定义一个模式,该模式包括您想要从其他插件中包含的贡献(例如pattern=".*file.import"匹配Import…菜单项)。这是您将使用

WorkbenchAdvisor中启用的活动
PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(...);

请注意,这个特殊的解决方案将禁用(几乎)所有的Eclipse贡献,除了File> Import…如果你想启用大量的功能,而只禁用一小部分,这将需要相当多的挖掘。但大多数情况下,找到正确的模式来实现这一点是可能的。

这听起来像是与您的RCP运行配置和包含的插件有关。

General类别(包括它的向导Preferences, File System, Existing Projects, Archive File)是由org.eclipse.ui.ide插件贡献的。

您的RCP应用程序需要这个插件吗?

看一下这个与RCP中的帮助菜单相关的问题,它描述了如何检查和更改所使用的插件。

您指出的解决方案的问题是它使用newwizardreregistry来检索向导的类别。相反,如果您想要删除导入向导,您应该在工作台中轮询importtwizarregistry:

abstractextension巫术注册import twizarregistry = (abstractextension巫术注册)PlatformUI.getWorkbench(). getimporttwizarregistry ();

一切正常

最新更新