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在这里不起作用。
如果您发现自己有时间将各个可能的视图添加到透视图扩展中,那就可以了。 虽然,如果您打开一个未添加的视图(即:在另一个文件夹中打开),则每个后续打开的视图将在前一个文件夹中打开,而不在编辑器区域中打开(如果不得到它)。
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号,因为我认为没有一个更快的方法来做到这一点。