【问题标题】:How to occupy entire editorss area with a view?如何用视图占据整个编辑区?
【发布时间】:2014-02-07 12:11:20
【问题描述】:

如何让一个视图占据整个编辑区?

我可以这样做

layout.addView(ID, IPageLayout.BOTTOM, 1.0f, "org.eclipse.ui.editorss");

但它似乎是暂时的(视图在某些拖动时停止占据整个区域)。

我知道文档禁止这样做。

我也不能通过plugin.xml 执行此操作。如果我设置了1.0,那么该值将被忽略并假定为0.5

有可能吗?

更新

我可以以交互方式将编辑器放入视图区域。我可以做相反的事情,即将视图放到编辑器区域吗?

更新 2

好的,我找到了一种让视图以交互方式占据整个编辑器区域的方法:应该拖动到区域标题的左侧,以便出现短的绿色标记:

这样任何视图都可以放在任何地方。

因此,这个问题是合理的并且一直存在:如何以编程方式做到这一点?

更新 3

这适用于JunoKepler 及以上,但不适用于Indigo 及以下。

更新 4

并且拖动也适用于书面插件。 IE。我可以手动将视图放置到整个区域,但我不知道如何以编程方式执行此操作。

【问题讨论】:

  • 我不认为你可以使用 Eclipse 3.x API 来做到这一点,Eclipse 4.x (e4) 应用程序模型 API 可以让你在任何地方放置任何东西(这就是 UI 代码使用)。
  • 我们能否以某种方式从3.x 中挂钩e4

标签: java eclipse eclipse-plugin eclipse-rcp


【解决方案1】:

Perspective 类中将编辑器区域的可见性设置为 false,如下所示。

import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;

public class Perspective implements IPerspectiveFactory {

    @Override
    public void createInitialLayout(IPageLayout layout) {
        layout.setEditorAreaVisible(false);
    }
}

【讨论】:

  • 是的,但是这样我将无法在视图之间留下“空白”区域,对吧?我希望能够。
  • 是的。为什么?另请注意,视图工具栏是本地视图,但所有编辑器工具栏都将贡献给主工具栏,因此您可以直观地识别视图和编辑器。
  • 因为我将我的编辑器写成ViewPart,我希望它在视觉上表现得像一个编辑器。
  • 为什么使用 ViewPart 创建编辑器。您可以使用 EditorPart。基本上,编辑将遵循编辑、修改、保存周期,但视图没有。视图旨在反映编辑器和/或其他视图中的信息。是否有充分的理由使用ViewPart 而不是EditorPart 创建编辑器?
  • 我已经切换到EditorPart,但这个问题是明智的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多