2014-10-30 71 views
0

假设我有三个视图A,B,C。我如何确保他们将始终按照给定的顺序打开。此刻我有一个问题,如果B,C是开放的,A是封闭的,打开A之后它会被追加到最后。所以我有B,C,A可见。Eclipse RCP打开某个位置的视图

打开我用一个新的观点如下方法:

IWorkbenchPage.showView(viewId, secondardId, IWorkbenchPage.VIEW_ACTIVATE); 

看来,对于这些观点存在的占位符被忽略。

回答

0

简短的回答是:而不是可能的。

将Eclipse工作台的背景作为IDE,可以控制哪个部分显示如何以及在哪里以用户为主,并且不会完全程序化控制工作台部件。尽管我认为这个策略非常适合IDE,但一些RCP应用程序可能有理由对其用户构成更严格的限制。

但是,您可能会受到黑客攻击并首先关闭所有有问题的视图(如果它们已打开),然后以所需顺序打开它们。但是这可能会导致闪烁,并且您也可能在打开的视图中松开状态(取决于它们保存和恢复其状态的完整程度)。

一个相当激进的方法 - 但它可能会从技术的POV工作 - 被fixed views and/or perspectives

如果有特定的顺序这些观点是很重要的,你为什么不把它们合并成一个?

+0

是的,但日食IDE本身不知道怎么做?例如,在左侧面板中,“包资源管理器”视图始终位于“JUnit”视图之前的“类型层次结构”之前,等等。此外,即使您移动标签,订单也会被记住。所以我认为这是一个默认的Eclipse行为,我可以在Eclipse RCP应用程序中轻松实现? – 2014-11-05 08:09:26

+0

您所描述的是通过[定义整个视角](https://www.eclipse.org/articles/using-perspectives/PerspectiveArticle.html)或[对现有视角的贡献]来实现的(http://help.eclipse .ORG/luna的/ index.jsp的?主题=%2Forg.eclipse.platform.doc.isv%2Freference%2Fextension点%2Forg_eclipse_ui_perspectiveExtensions.html)。我以为这就是你已经做的。但无论如何,这能解决你的问题吗? – 2014-11-05 10:01:54

+0

我有自己的观点,我定义占位符等,但无法找到确保IFolderLayout内的视图顺序的方式。关闭和开口将解决它,但它不是我所需要的。 – 2014-11-05 12:48:18