Eclipse RCP – 在编辑器区域打开视图(3.8 / e4混合)

我正在研究一个3.8-e4混合(即我们有Luna依赖,但是我们使用Application.e4xmi )。 所以我们基本上运行紧凑的层。

这样说,这将是很好的find一个e4编程的方式来堆叠这些讨厌的意见到编辑文件夹。


1)问题

我想在编辑器区域放置一个通用视图文件夹,以便在运行时打开的每个视图都将在那里打开。

在编辑文件夹中查看

(图片从这个问题被盗)


2.1)可能的修复方法1:使用plugin.xml

创build一个透视扩展,并将每个可能的视图添加到该扩展中, 关系堆栈覆盖相对org.eclipse.ui.editorss 。 如果你有太多的意见被打开,并且项目规模很大,这是有点不方便的。 我也注意到通配符视图ID在这里不起作用。

plugin.xml的SS,带透视图扩展名

如果您发现自己有时间将各个可能的视图添加到透视图扩展中,那就可以了。 虽然,如果您打开一个未添加的视图(即:在另一个文件夹中打开),则每个后续打开的视图将在前一个文件夹中打开,而不在编辑器区域中打开(如果不得到它)。


2.2)可能的修复2:在透视工厂中使用代码

IPerspectiveFactory ,我们可以访问IPageLayout ,这恰好是org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout (e4 stuff)。

现在,这个ModeledPageLayout实现是合理的,但也没有文档和奇怪的公共API。 这个可以将任何其他亲属的观点叠加起来

 modeledPageLayout.stackView("newView0", IPageLayout.ID_EDITOR_AREA); 

这将是2.1的编程版本。 另外,同样的问题出现在这里。 如果某个视图在其他地方打开,则上面的代码变得毫无用处。

有趣的是, stackView API不支持通配符(而其他的如addView )。


2.3)可能的修复方法3:变通方法yaaay!

我有很多的观点,并在每一个很多不同的文件夹。 一切都精确地放置。

由于Eclipse提供的API可以从系统的任何地方获取所有的视图ID,我想按照以下的方式进行操作: 没有添加到特定文件夹的每个视图ID将被追加到编辑器区域(即编辑器文件夹,编辑堆栈)

除非有人提供更方便省时的解决scheme,否则这将是我的最后手段。

请记住,一个e4程序化的select更加灵活!


3.)相关问题

  • Eclipse RCP – 在编辑器文件夹中打开视图
  • Eclipse RCP – 用编辑器区域堆叠视图?
  • 自定义Eclipse透视图,最初可视视图堆叠到编辑器区域
  • 谷歌的问题,拉尔斯回答

这些将在e4版本中被弃用。


4.)Eclipse的Bugzilla的相关Bug:

我自己打开的这个最近的错误与小小的SSCCE有关系。 在这个评论中描述了重现这个步骤,所以我不打算在这里复制粘贴它们。

我build议你去可能修复3号,因为我认为没有一个更快的方法来做到这一点。

Interesting Posts