【问题标题】:How to remove a view from layout in RCP如何从 RCP 中的布局中删除视图
【发布时间】:2016-11-10 19:57:20
【问题描述】:

我有一个应用程序,我有不同的视角。在一个视角中,我想删除已添加到布局中的某些视图。 下面是我的sn-p:

这是我想重置视角时调用的 sn-p

public void createInitialLayout(IPageLayout layout) {
        layout.setEditorAreaVisible(false);
        layout.setFixed(false);

        //I am dividing the whole layout into 4 parts.One is top left,top right,bottom left,bottom right.

        IFolderLayout topLeft = layout.createFolder(TOP_LEFT_ID, IPageLayout.LEFT, 0.25f, IPageLayout.ID_EDITOR_AREA);
        topLeft.addView(SpaceView.ID);
        topLeft.addView(RepositoryView.ID);

        IFolderLayout topRight = layout.createFolder(TOP_RIGHT_ID, IPageLayout.TOP, 0.25f, IPageLayout.ID_EDITOR_AREA);
        topRight.addView(ModuleView.ID);
        topRight.addView(ProjectChangeLogView.ID);
        topRight.addView(SearchViewPart.ID);

        IFolderLayout bottomLeft = layout.createFolder(BOTTOM_LEFT_ID, IPageLayout.BOTTOM, 0.70f, TOP_LEFT_ID);
        bottomLeft.addView(QueueView.ID);

        IFolderLayout bottomRight = layout.createFolder(BOTTOM_RIGHT_ID, IPageLayout.BOTTOM, 0.55f, TOP_RIGHT_ID);
        bottomRight.addView(Objects.ID);

    }

现在透视重置后,我想从布局中删除某些视图(例如对象视图)。这里我没有任何选项 bottomRight.delelte/removeView 等。那么我该如何实现呢?

【问题讨论】:

  • 每个透视图都有自己的布局。您是否为每个透视图使用不同的透视图工厂?
  • 是的,我对每个透视图都有不同的透视图工厂。所以假设在一个透视图中我已经修复了一个布局。现在保持相同的布局,我可以在单击 a 时重新排列视图的位置按钮。就像从右下角到右上角取一个视图一样。?

标签: eclipse views rcp


【解决方案1】:

透视工厂仅在透视第一次使用和重置时使用。它不能用于更改开放透视图的布局。

我不知道移动视图位置的简单方法。您可能需要通过将MPart 移动到新的MPartStack 来修改e4 应用程序模型,方法类似于拖放代码(org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager)

【讨论】:

  • 目前我正在使用 eclipse-indigo-3.7.2。很抱歉错过了这部分。那么我怎样才能在这个版本中实现同样的效果呢?
  • 对不起,我不知道你会在这么旧的版本中做什么。
猜你喜欢
  • 2011-01-09
  • 2014-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-30
  • 2016-11-06
  • 1970-01-01
相关资源
最近更新 更多