1

我有一个 RCP 应用程序,我在其中添加了介绍页面(欢迎页面)。这是使用 IIntroPart 实现的。所以我的不是面向 xml 的欢迎页面。

问题:当应用程序启动时,欢迎页面完美显示。但是现在当欢迎页面仍然打开(可见)时,如果我尝试在我的应用程序中打开一个透视图,欢迎页面不会向右移动(就像在 Eclipse IDE 中那样),为我选择的透视图腾出空间。

所以即使选择了透视图,透视图也没有显示,欢迎页面仍然占据了整个工作台区域。请注意,选定的视角不会隐藏在欢迎页面后面。但是选定的透视图在透视图快捷方式中得到更新!

重新启动时(清除元数据后),如果我手动关闭欢迎页面然后尝试打开透视图,透视图就可以正常打开。

这是因为欢迎页面(当它可见时)所选透视图未在工作台中打开。

谁能帮我解决这个问题?它的行为方式应该与 Eclipse IDE 中欢迎页面的行为方式一样。即,当仍然打开欢迎页面时,如果打开了透视图,那么欢迎页面应该向右移动,为透视图腾出空间,因此(选定的透视图和欢迎页面)都应该可见。

更新:

在这个问题上取得了一些进展。现在,当我选择要打开的透视图(“窗口-> 打开透视图-> MyPerspective”)时,欢迎页面(介绍部分)仍然打开,我能够关闭欢迎页面(这是通过将部分侦听器添加到欢迎页面)。但是现在显示了一个空白区域,并且没有显示透视图。但是,所选透视图在应用程序透视快捷栏中得到更新

欢迎任何帮助...

4

1 回答 1

1

添加透视侦听器并最小化欢迎页面。将以下代码放入 Activator 启动方法中。

    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);
                            }
                        }

                    }
                });                
        }
    });
于 2013-10-08T11:23:11.517 回答