去除Eclipse的窗口视图 - >显示视图(Removing a view from Ecl

2019-10-21 09:24发布

我们有一个应用程序,其中一些观点仅连接到一些观点时工作。 我们要删除从窗口这些视图- >显示视图对话框,使用户无法将其添加到观点,他们不工作。

如何做到这一点无论编程方式或声明的任何想法?

我已经尝试使用<visibleWhen />但是视图的对话框中仍然显示:

  <view class="com.mycompany.ViewClass" 
        id="com.mycompany.ViewId" 
        name="View Name" 
        restorable="true">

        <visibleWhen>
            <with variable="activeWorkbenchWindow.activePerspective">
                <equals value="com.mycompany.MyPerspective"/>
            </with>
        </visibleWhen>
  </view>

我不认为这是与任何问题<visibleWhen />条款,所以我不知道它是否能与View一起使用?

Answer 1:

应当视为菜单贡献 ,使用<visibleWhen/>当某个条件满足只显示该选项。

请参阅wiki文章“菜单贡献”为多。



Answer 2:

不幸的是,似乎Eclipse中通过调用私有已经这样做了介绍视图ViewContentProvider.removeIntroView上的内容提供商显示视图对话框。 要绕过这个限制的一种方法是通过向定义活动org.eclipse.ui.activities扩展点(见activityPatternBinding的活动是如何被映射到UI的贡献)。 这样做,不仅将解除从显示视图对话框的看法,但它也将防止他们从自己的视角显示。 视图然后可通过编程所示。 我只好也能够在活动ApplicationWorkbenchAdvisor.preStartup因为在我们的应用程序限制的方法:

    Set<String> activityIds = new HashSet<String>();
    activityIds.add("com.my.activity.id");
    IWorkbenchActivitySupport activitySupport = PlatformUI.getWorkbench().getActivitySupport();
    activitySupport.setEnabledActivityIds(activityIds);

在这种情况下,该活动具有显示对话框之前被禁用的,所以显示视图菜单的贡献已被修改做到这一点。

希望扩展点会被添加到Eclipse中的下一个版本,以提供选项开发商从该对话框中删除声明的看法。



文章来源: Removing a view from Eclipse Window -> Show views