How to remove a Category from Import wizard in Eclipse-RCP?

家住魔仙堡 提交于 2019-11-27 19:27:36

问题


I need to add an import wizard into my eclipse-rcp app. For that I would like to use existing wizard with only my categories. I found couple of examples in the Internet, but they didn't help much.

My problem is that I have not only my category, but also the General category. I would like to remove it, if possible. Actually I have found one solution here, but it seems, that it is not working. I've tried to put provided code snippet in WorkbrenchWindowAdvisor and in ActionBarAdvisor and even execute it before my wizard is created, but General category with 5 possible wizards is still there. Any suggestions, how to remove it or at least hide?

BR, AlexG.


回答1:


You can choose which contributions are visible in your RCP application by using org.eclipse.ui.activities extension point with appropriate activityPatternBinding (despite of what they say at the page that you linked).

Using this extension point you can define one activity with a pattern that matches anything but your own contributions (e.g. pattern="[^\.]++\.(?!myplugin).*" matches contributions wiht ID-s not starting with com.myplugin). This activity, when not being enabled, will exclude all the contributions from UI except your own.

With another acitvity you will define a pattern that includes the contributions that you'd like to include from other plugins (e.g. pattern=".*file\.import" matches the Import... menu item in File menu). This is the activity that you will enable in your WorkbenchAdvisor using

PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(...);

Please note that this particular solution will disable (almost) all of the Eclipse contributions except File > Import... It will take quite a bit of digging if you want to have a lot of functionality enabled and only small parts disabled. But it's mostly possible to figure out correct patterns to achieve this.




回答2:


It sounds like it's related to your RCP run configuration and the plug-ins included.

The General category (with it's wizards Preferences, File System, Existing Projects, Archive File) is contributed by the org.eclipse.ui.ide plug-in.

Is this plug-in required by your RCP application?

Have a look at this question related to the Help Menu in an RCP as it describes how to check and change the plug-ins used.




回答3:


The problem with the solution you point out is that it is using the NewWizardRegistry to retrieve the categories of the wizards. Instead, if you want to remove the import wizards you should poll the Workbench for the ImportWizardRegistry:

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

Everything else is OK.



来源:https://stackoverflow.com/questions/8112012/how-to-remove-a-category-from-import-wizard-in-eclipse-rcp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!