我需要添加一个导入向导到我的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 ();
一切正常