Eclipse dsl应用程序无法隐藏未使用的透视图

时间:2015-02-11 11:30:46

标签: java eclipse eclipse-rcp dsl

我正在研究为内部DSL提供IDE的eclipse应用程序。 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 platform生成
  2. 包含产品eclipse配置的xxx.xxx.xxx.product插件
  3. 我试图将提到的片段放到plugin.xml中,但它对我没有帮助。 另外,我想找出以下项目:

    1. 我可以只通过编程方式进行吗?
    2. 我可以通过声明方式进行吗?
    3. 我应该使用上述两种方式吗?
    4. 哪个插件应包含此声明?
    5. 我使用Eclipse 4(Luna)。

1 个答案:

答案 0 :(得分:0)

您的enabledWhen无效,请将其删除。除非您为活动指定defaultEnablement条目,否则默认为禁用。

以编程方式,您可以使用:

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

IActivityManager activityManager = workbenchActivitySupport.getActivityManager();

获取活动支持和活动管理器界面,使您可以控制活动 - 但仍需要在plugin.xml中定义它们

如果您正在制作Eclipse RCP,则可能无法在RCP构建中包含JDT和其他插件。在这种情况下,您不需要压制视角。