我需要在我的eclipse-rcp应用程序中添加导入向导。为此,我想使用只有我的类别的现有向导。我在互联网上找到了几个例子,但它们并没有多大帮助。
我的问题是我不仅有我的类别,还有通用类别。如果可能的话,我想删除它。实际上我找到了一个解决方案here,但似乎它没有用。我试图在WorkbrenchWindowAdvisor和ActionBarAdvisor中提供提供的代码片段,甚至在创建向导之前执行它,但是仍然有5个可能的向导的常规类别。任何建议,如何删除它或至少隐藏?
BR, AlexG。
答案 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();
其他一切都还可以。