如何从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"
与pattern=".*file\.import"
菜单中的“导入…”菜单项匹配)。 这是您将在WorkbenchAdvisor
启用的活动
PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(...);
请注意,此特定解决方案将禁用(几乎)所有Eclipse贡献,但文件>导入…如果您希望启用许多function并且仅禁用小部件,则需要进行相当多的挖掘。 但是,最有可能找出正确的模式来实现这一目标。
听起来它与您的RCP运行配置和包含的插件有关。
常规类别(使用它的向导首选项,文件系统,现有项目,存档文件)由org.eclipse.ui.ide
插件提供。
您的RCP应用程序是否需要此插件?
请查看与RCP中的“帮助”菜单相关的此问题,因为它描述了如何检查和更改所使用的插件。
您指出的解决方案的问题是它正在使用NewWizardRegistry来检索向导的类别。 相反,如果要删除导入向导,则应轮询Workbench以获取ImportWizardRegistry:
AbstractExtensionWizardRegistry importWizardRegistry =(AbstractExtensionWizardRegistry)PlatformUI.getWorkbench()。 getImportWizardRegistry() ;
其他一切都还可以。