Eclipse RCP - 在编辑器区域中打开视图(3.8/e4 混合)
我正在研究一个3.8-e4的混合体(即我们有Luna依赖关系,但我们还没有使用Appplication.e4xmi)。因此,我们基本上运行的是紧凑层。
话虽如此,最好找到一种e4编程方式将这些令人讨厌的视图堆叠到编辑器文件夹中。
1.) 问题
我想在编辑器区域放置一个通用视图文件夹,以便在运行时打开的每个视图都将在那里打开。
(从这个问题中窃取的照片)
2.1)可能的修复1:使用插件.xml
创建一个透视扩展,并将每个可能的视图添加到该扩展中,其关系堆栈位于相对的 org.eclipse.ui.editors 上。如果您有太多的视图无法打开,并且项目扩展速度很快,这有点不方便。我还注意到通配符视图 ID 在这里不起作用。
如果您发现自己有时间将每个可能的视图添加到透视扩展中,那将起作用。虽然,如果您打开一个未在此处添加的视图(即:在不同的文件夹中打开),则每个后续打开的视图都将在上一个文件夹中打开,而不是在编辑器区域中打开(如果您没有得到它,请查询进一步的解释)。
2.2) 可能的修复 no.2:在透视工厂中使用代码
在 中,我们确实可以访问 ,这恰好是 (e4 的东西)。IPerspectiveFactory
IPageLayout
org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout
现在,这个实现是合理的,但也没有文档和奇怪的公共API。这个提供了将视图堆叠在任何其他亲戚之上的可能性ModeledPageLayout
modeledPageLayout.stackView("newView0", IPageLayout.ID_EDITOR_AREA);
这将是 2.1 的编程版本。此外,此处也出现相同的问题。如果视图在其他地方打开,则上面的代码将变得无用。
有趣的是,API不支持通配符(而其他的则支持通配符)。stackView
addView
2.3)可能的修复No.3:解决方法yaaay!
我有很多观点,每个角度都有很多不同的文件夹。一切都精确地放置。
由于 Eclipse 提供了从系统周围任何位置获取所有视图 ID 的 API,因此我想按透视执行以下操作:每个未添加到特定文件夹的视图 ID 都将附加到编辑器区域(即编辑器文件夹、编辑器堆栈)。
这将是我的最后手段,除非有人提供更方便和省时的解决方案。
请记住,e4编程替代方案更灵活!
3.) 相关问题
- Eclipse RCP -- 在编辑器文件夹中打开视图
- Eclipse RCP - 将视图与编辑器区域堆叠在一起?
- 自定义 Eclipse 透视图,最初不可视的视图堆叠到编辑器区域
- 谷歌问题,拉尔斯回答
这些将在 e4 版本中被弃用。
4.) Eclipse 的 Bugzilla 上的相关 Bug:
最近由我自己打开的这个错误有一个小的SSCCE附件。重现此内容的步骤在此注释中进行了描述,因此我不打算在此处复制粘贴它们。