我有一个RCP应用程序,其中我添加了Intro页面(欢迎页面)。这是使用IIntroPart实现的。所以我的不是面向xml的欢迎页面。
问题:启动应用程序时,欢迎页面会完美显示。但是现在当欢迎页面仍然打开(可见)时,如果我尝试在我的应用程序中打开透视图,欢迎页面不会向右移动(就像在Eclipse IDE中一样),为我选择的透视图腾出空间。
因此,即使选择了透视图,也不会显示透视图,欢迎页面仍然占据整个工作台区域。请注意,所选的perspectve不会隐藏在欢迎页面后面。但是所选择的观点正在透视快捷方式中得到更新!
重新启动(清除元数据后)如果我手动关闭欢迎页面然后尝试打开透视图,则透视图就可以正常打开。
这是因为欢迎页面(当它可见时)所选的透视图未在工作台中打开。
有人可以帮我解决这个问题吗?它应该像欢迎页面在Eclipse IDE中的行为一样。即,当仍然打开欢迎页面时,如果打开透视图,则欢迎页面应该向右移动,为pespective创建空间,因此两者(选定的透视图和欢迎页面)应该是可见的。
更新:
在这个问题上取得了一些进展。现在当我选择要打开的透视图(“窗口 - >打开透视图 - > MyPerspective”)时,欢迎页面(介绍部分)仍然打开,我可以关闭欢迎页面(这是通过添加部件监听器来完成的到欢迎页面)。但现在显示一个空白区域,并且未显示透视图。但是,所选透视图将在应用程序透视快捷方式栏中进行更新
欢迎任何帮助......
答案 0 :(得分:1)
添加透视侦听器并最小化欢迎页面。将以下代码放在Activator start方法中。
final IWorkbench workbench = PlatformUI.getWorkbench();
workbench.getDisplay().asyncExec(new Runnable() {
public void run() {
workbench.getActiveWorkbenchWindow().addPerspectiveListener(new IPerspectiveListener() {
public void perspectiveActivated(IWorkbenchPage arg0, IPerspectiveDescriptor arg1) {
// Nothing to do
}
public void perspectiveChanged(IWorkbenchPage arg0, IPerspectiveDescriptor arg1, String arg2) {
// Fix for bug number 8028
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewPart introView = page.findView("org.eclipse.ui.internal.introview");//$NON-NLS-1$
if (introView != null && page.getReference(introView) != null) {
int currentState = page.getPartState(page.getReference(introView));
if (currentState != IWorkbenchPage.STATE_MINIMIZED) {
page.setPartState(page.getReference(introView), IWorkbenchPage.STATE_MINIMIZED);
}
}
}
});
}
});