gpt4 book ai didi

java - Eclipse RCP - 在编辑器区域中打开一个 View (3.8/e4 混合)

转载 作者:IT老高 更新时间:2023-10-28 11:23:23 24 4
gpt4 key购买 nike

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

话虽如此,如果能找到一种 e4 编程方式将这些讨厌的 View 堆叠到编辑器文件夹中,那就太好了。


1.) 问题

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

View in editor folder

(从 this question 偷来的图片)


2.1) 可能的解决方法 1:使用 plugin.xml

创建一个透视扩展,并将每个可能的 View 添加到该扩展中,并在 relative org.eclipse.ui.editorss 上使用 关系堆栈。如果您有太多需要打开的 View ,并且项目扩展速度很快,这会有点不方便。我还注意到通配符 View ID 在这里不起作用。

SS of the plugin.xml with perspective extensions

如果您发现自己有时间将每个可能的 View 添加到透视扩展中,那将是可行的。虽然,如果您打开一个未在此处添加的 View (即:在不同的文件夹中打开),那么每个后续打开的 View 都将在前一个文件夹中打开,而不是在编辑器区域中(如果您不这样做,请询问进一步的解释得到它)。


2.2) 可能的解决方法 2:在透视工厂中使用代码

IPerspectiveFactory 中,我们确实可以访问 IPageLayout,它恰好是 org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout(e4 的东西)。

现在,这个 ModeledPageLayout 实现是合理的,但也没有文档和奇怪的公共(public) API。这提供了将 View 堆叠在任何其他亲戚之上的可能性

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

这将是 2.1 的程序化版本。此外,同样的问题也出现在这里。如果在其他地方打开 View ,上面的代码将变得毫无用处。

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


2.3) 可能的解决方法 3:变通办法耶!

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

由于 Eclipse 提供了从系统各处获取所有 View ID 的 API,因此我想根据视角执行以下操作:每个未添加到特定文件夹的 View ID 都将附加到编辑器区域(即编辑器文件夹、编辑器堆栈)

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

请记住,e4 程序化替代方案更灵活!


3.) 相关问题

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


4.) Eclipse 的 Bugzilla 上的相关错误:

This recent bug opened by myself有一个带有小型 SSCCE 的附件。 this comment 中描述了重现此问题的步骤。 ,所以我不会在这里复制粘贴它们。

最佳答案

我建议您使用可能的修复 3,因为我认为没有更快的方法可以做到这一点。

关于java - Eclipse RCP - 在编辑器区域中打开一个 View (3.8/e4 混合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26776802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com