Как удалить категорию из мастера импорта в Eclipse-RCP? - PullRequest
3 голосов
/ 13 ноября 2011

Мне нужно добавить мастер импорта в мое приложение eclipse-rcp. Для этого я хотел бы использовать существующий мастер только с моими категориями. Я нашел несколько примеров в Интернете, но они мало помогли.

Моя проблема в том, что у меня есть не только моя категория, но и общая категория. Я хотел бы удалить это, если это возможно. На самом деле я нашел одно решение здесь , но кажется, что оно не работает. Я попытался поместить предоставленный фрагмент кода в WorkbrenchWindowAdvisor и ActionBarAdvisor и даже выполнить его до создания моего мастера, но общая категория с 5 возможными мастерами все еще существует. Есть предложения, как его убрать или хотя бы спрятать?

BR, AlexG.

Ответы [ 3 ]

3 голосов
/ 17 ноября 2011

Вы можете выбрать, какие вклады будут отображаться в вашем приложении RCP, используя org.eclipse.ui.activities точку расширения с соответствующим activityPatternBinding (несмотря на то, что они говорят на странице, на которую вы ссылались).

Используя эту точку расширения, вы можете определить одно действие с шаблоном, который соответствует чему угодно, кроме ваших собственных вкладов (например, pattern="[^\.]++\.(?!myplugin).*" соответствует вкладам с идентификаторами, не начинающимися с com.myplugin).Это действие, если оно не включено, будет исключать все вклады из пользовательского интерфейса, кроме вашего собственного.

С другой активностью вы определите шаблон, который включает вклады, которые вы хотели бы включить в другие плагины (например, pattern=".*file\.import" соответствует пункту меню Импорт ... в меню Файл).Это действие, которое вы включите в вашем WorkbenchAdvisor, используя

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

Обратите внимание, что это конкретное решение отключит (почти) все вклады Eclipse, кроме File> Import... Если вы захотите включить много функций и отключить только мелкие детали, потребуется немало копать.Но в большинстве случаев можно найти правильные схемы для достижения этой цели.

0 голосов
/ 22 октября 2013

Проблема с решением, на которое вы указали, заключается в том, что он использует NewWizardRegistry для получения категорий мастеров. Вместо этого, если вы хотите удалить мастера импорта, вам следует опросить Workbench для ImportWizardRegistry:

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

Все остальное в порядке.

0 голосов
/ 15 ноября 2011

Похоже, это связано с вашей конфигурацией запуска RCP и включенными плагинами.

Общая категория (с настройками мастера, Файловая система, Существующие проекты, Архивный файл) добавлена ​​подключаемым модулем org.eclipse.ui.ide.

Требуется ли этот плагин для вашего приложения RCP?

Посмотрите на этот вопрос, связанный с меню справки в RCP , поскольку он описывает, как проверять и изменять используемые плагины.

...