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

106

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

话虽如此,找到一种e4编程方法来将这些麻烦的视图堆叠到编辑器文件夹中会很好。


1.) 问题

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

View in editor folder

(图片来源于这个问题


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

创建透视图扩展,并将每个可能的视图添加到该扩展中,具有相对于org.eclipse.ui.editors的关系堆栈。如果你有太多等待打开的视图并且项目快速扩展,这可能有点不方便。我还注意到通配符视图ID在这里不起作用。

SS of the plugin.xml with perspective extensions

如果你有时间将每个可能的视图添加到透视图扩展中,那么这将起作用。尽管如此,如果你打开一个未在此处添加的视图(即在不同的文件夹中打开),则每个随后打开的视图都将在以前的文件夹中打开,而不是在编辑器区域中打开(如果你不理解请进一步询问)。


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

在IPerspectiveFactory中,我们可以访问IPageLayout,它恰好是org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout(e4 stuff)。现在,这个ModeledPageLayout实现是合理的,但没有文档和奇怪的公共APIs。这个给了我们在任何其他相对位置上堆叠视图的可能性。

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

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

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


2.3) 可能的修复方法之三:变通方法!

我有很多视角,并且每个视角中都有很多不同的文件夹。一切都被精确地放置了。

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

除非有人提供更方便和节省时间的解决方案,否则这将是我的最后一招。

请记住,e4编程式替代方案更加灵活!


3.) 相关问题

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


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

我最近创建的这个bug有一个包含小SSCCE的附件。重现此问题的步骤在此注释中描述,因此我不会在此处复制粘贴它们。


我认为在包含3.x兼容代码的情况下,这很不可能完成。您可能能够使用e4 API在编辑器区域放置视图,但我预计这会使兼容性代码混乱。 - greg-449
1
如果您不使用任何编辑器,那么只需最小化共享区域,并按照所需的方式设计布局即可。 - bebbo
前往更新版本,以便此功能可以直接使用。 - bebbo
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Georgian
1个回答

1
我建议您选择可能的修复方法3,因为我认为没有比这更快的方法。

任何建议和准备好的答案都可以写成评论而不是新的回答。 - Mahalakshmi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接