【问题标题】:How to remove views from Windows-->Show View list?如何从 Windows--> 显示视图列表中删除视图?
【发布时间】: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 &gt; Show View,这样您就不必过滤视图ID。
  • @greg-449 我的用例是,我插入了BannerInformationView 以显示一些信息,并且无论其他视图如何,它都应该以定义的视角出现。但对于其他视图,用户可以照常显示或关闭视图。
  • 您可以在IViewLayout 上调用setCloseable(false) 以停止关闭视图。我看起来没有任何方法可以将活动过滤限制为仅显示视图。
  • 是的,我做了同样的事情来限制用户关闭视图。但不应从显示视图中添加此视图。这样它就会想出不同的位置。

标签: swt eclipse-rcp jface


【解决方案1】:

视图列表由activities 列表过滤。所以你可以定义一个活动来抑制视图:

<extension point="org.eclipse.ui.activities">  
  <activity id="activity.id" name="Name">
  </activity>
  <activityPatternBinding
     activityId="activity.id"
     isEqualityPattern="true"
     pattern="plugin.id/view.id">
  </activityPatternBinding>
 </extension>

注意:pattern 的值是 'contributing plugin id / view id',一个常见的错误是忽略插件 id。

【讨论】:

  • 它是否也会从透视图中删除视图?
  • 如果你专门将视图添加到透视图中,我认为它仍然会在透视图中。
  • 我已经修改了问题,你可以看看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-20
相关资源
最近更新 更多