我们有一个应用程序,其中一些观点仅连接到一些观点时工作。 我们要删除从窗口这些视图- >显示视图对话框,使用户无法将其添加到观点,他们不工作。
如何做到这一点无论编程方式或声明的任何想法?
我已经尝试使用<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一起使用?
应当视为菜单贡献 ,使用<visibleWhen/>
当某个条件满足只显示该选项。
请参阅wiki文章“菜单贡献”为多。
不幸的是,似乎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中的下一个版本,以提供选项开发商从该对话框中删除声明的看法。