Я работаю над приложением 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>
Я попытался поместить упомянутый фрагмент в файл plugin.xml, но это мне не помогает. Также я хотел бы узнать следующие пункты:
Я использую Eclipse 4 (Luna).
Ваш enabledWhen
недействителен, удалите это. Если вы не укажете запись defaultEnablement
для активности, которую она по умолчанию отключает.
Программно вы можете использовать:
IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport();
IActivityManager activityManager = workbenchActivitySupport.getActivityManager();
для получения интерфейсов поддержки действий и интерфейса управления деятельностью, которые дают вам некоторый контроль над действиями - но вам все равно необходимо определить их в файле plugin.xml
Если вы создаете RCP Eclipse, вы можете просто не включать JDT и другие плагины в свою RCP-сборку. В этом случае вам не нужно будет подавлять перспективы.