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

时间:2011-11-13 13:55:23

标签: java eclipse-rcp wizard plugin.xml

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

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

BR, AlexG。

3 个答案:

答案 0 :(得分:3)

您可以使用org.eclipse.ui.activities扩展点和相应的activityPatternBinding选择在您的RCP应用中可见的内容(尽管他们在您关联的页面上说了什么)。

使用此扩展点,您可以使用与您自己的贡献匹配的模式定义一个活动(例如pattern="[^\.]++\.(?!myplugin).*"匹配ID-s不以com.myplugin开头的贡献)。如果未启用此活动,则会排除除您自己以外的所有UI贡献。

在另一个活动中,您将定义一个模式,其中包含您希望从其他插件中包含的贡献(例如pattern=".*file\.import"与“文件”菜单中的“导入...”菜单项匹配)。这是您在WorkbenchAdvisor中使用

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

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

答案 1 :(得分:0)

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

“常规”类别(带有向导首选项,文件系统,现有项目,存档文件)由org.eclipse.ui.ide插件提供。

您的RCP应用程序是否需要此插件?

查看this question related to the Help Menu in an RCP,因为它描述了如何检查和更改使用的插件。

答案 2 :(得分:0)

您指出的解决方案的问题是它正在使用NewWizardRegistry来检索向导的类别。相反,如果要删除导入向导,则应轮询Workbench以获取ImportWizardRegistry:

AbstractExtensionWizardRegistry importWizardRegistry =(AbstractExtensionWizardRegistry)PlatformUI.getWorkbench()。 getImportWizardRegistry();

其他一切都还可以。