在编辑器区域打开视图(3.8 / e4混合)
我正在开发一个3.8-e4混合(即我们有Luna依赖,但我们不使用Application.e4xmi)。 所以我们基本上运行紧凑层。
据说,最好找到一种e4编程方式将这些讨厌的视图堆叠到编辑器文件夹中。
1.)问题
我想在编辑器区域放置一个通用视图文件夹,以便在运行时打开的每个视图都将在那里打开。
(图片从这个问题被盗)
2.1)可能的修复方法1:使用plugin.xml
创建透视扩展,并将每个可能的视图添加到该扩展中,并将关系堆栈放在相对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都将被追加到编辑器区域(即编辑器文件夹,编辑堆栈)。
这将是我的最后手段,除非有人提供更方便,更省时的解决方案。
请记住,e4编程替代方案更加灵活!
3.)相关问题
这些将在e4版本中被弃用。
4.)Eclipse Bugzilla的相关Bug:
我自己打开的这个最近的错误与一个小的SSCCE有关。 在这个评论中描述了重现这一点的步骤,所以我不打算在这里复制粘贴它们。
我建议你去可能的修复3号,因为我认为没有一个更快的方法来做到这一点。
链接地址: http://www.djcxy.com/p/18689.html