【发布时间】:2014-03-28 13:06:02
【问题描述】:
我拥有永久设置在我的视角上的视图。 此视图无法关闭,也无法从 Windows 打开 --> 显示视图
我构造了从 Windows 中删除视图 --> 视图列表。
我将如何实现这一目标?
我尝试了您的解决方案,它正在做这些事情,但它也从透视图中移除了视图。以下是我遵循的步骤..
我在 plugin.XML 中添加了以下视图
<view
allowMultiple="false"
category="org.view.ui.IDECategory"
class="org.view.ui.BannerInformationView"
id="org.view.ui.BannerInformationView"
name="BannerInfo"
restorable="true">
</view>
在此之后,我在我的透视图中添加了这个视图
public void defineLayout( IPageLayout layout )
{
layout.setEditorAreaVisible( true );
layout.addStandaloneView( BANNER_INFO_VIEW_ID, false, IPageLayout.TOP, 0.03f, layout.getEditorArea() );
IViewLayout viewLayout = layout.getViewLayout( BANNER_INFO_VIEW_ID );
viewLayout.setMoveable( false );
}
现在我添加了活动以从显示视图菜单中隐藏我的视图名称
<extension point="org.eclipse.ui.activities">
<activity
id="activity.ide"
name="ide">
</activity>
<activityPatternBinding
activityId="activity.ide"
isEqualityPattern="true"
pattern="org.view.ui.IDECategory.pluginid/org.view.ui.BannerInformationView">
</activityPatternBinding>
</extension>
现在我的问题是,除了从窗口隐藏视图条目 - > 显示视图之外,它还从我的角度隐藏了视图。
我想从显示视图中隐藏唯一的条目,以便用户无法对其进行任何操作,但它在我的视角中应该始终可见。
【问题讨论】:
-
您可以使用活动完全隐藏
Window > Show View,这样您就不必过滤视图ID。 -
@greg-449 我的用例是,我插入了
BannerInformationView以显示一些信息,并且无论其他视图如何,它都应该以定义的视角出现。但对于其他视图,用户可以照常显示或关闭视图。 -
您可以在
IViewLayout上调用setCloseable(false)以停止关闭视图。我看起来没有任何方法可以将活动过滤限制为仅显示视图。 -
是的,我做了同样的事情来限制用户关闭视图。但不应从显示视图中添加此视图。这样它就会想出不同的位置。
标签: swt eclipse-rcp jface