Приложение Eclipse dsl не может скрыть неиспользованную перспективу

1

Я работаю над приложением eclipse, которое предоставляет IDE для внутренней DSL. DSL-инфраструктура создается платформой xtext (2.7.3). Я хотел бы скрыть несколько перспектив, которые не полезны для конечного пользователя моего приложения (Java, Debug, PDE и т.д.). Я нашел один подход через действия. Я создал следующий фрагмент файла plugin.xml

<extension
        point="org.eclipse.ui.activities">
        <activity id="hauweg" name="hauweg-den-xxxx">
            <!-- this makes sure the matching stuff will never be enabled -->
            <enabledWhen>
                <with variable="true">
                    <equals value="false"/>
                </with>
            </enabledWhen>
        </activity>
        <!-- match all perspectives except org.eclipse.ui.resourcePerspective -->
        <activityPatternBinding activityId="hauweg" pattern=".*DebugPerspective"/>
        <activityPatternBinding activityId="hauweg" pattern=".*JavaPerspective"/>
        <activityPatternBinding activityId="hauweg" pattern=".*JavaHierarchyPerspective"/>
        <activityPatternBinding activityId="hauweg" pattern=".*JavaBrowsingPerspective"/>
        <activityPatternBinding activityId="hauweg" pattern=".*PDEPerspective"/>
        <activityPatternBinding activityId="hauweg" pattern=".*TeamSynchronizingPerspective"/>
    </extension>
  1. xxx.xxx.xxx.ui, большая часть этого плагина генерируется платформой xtext
  2. Плагин xxx.xxx.xxx.product, содержащий конфигурацию eclipse продукта

Я попытался поместить упомянутый фрагмент в файл plugin.xml, но это мне не помогает. Также я хотел бы узнать следующие пункты:

  1. могу ли я сделать это программно?
  2. могу ли я сделать это только декларативным образом?
  3. Должен ли я использовать оба указанных способа?
  4. Какой плагин должен содержать это объявление?

Я использую Eclipse 4 (Luna).

Теги:
eclipse-rcp
dsl

1 ответ

0

Ваш enabledWhen недействителен, удалите это. Если вы не укажете запись defaultEnablement для активности, которую она по умолчанию отключает.

Программно вы можете использовать:

IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport();

IActivityManager activityManager = workbenchActivitySupport.getActivityManager();

для получения интерфейсов поддержки действий и интерфейса управления деятельностью, которые дают вам некоторый контроль над действиями - но вам все равно необходимо определить их в файле plugin.xml

Если вы создаете RCP Eclipse, вы можете просто не включать JDT и другие плагины в свою RCP-сборку. В этом случае вам не нужно будет подавлять перспективы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню