从Eclipse Juno开始,在RCP应用程序中切换透视图?

DenysSéguret:

在我的RCP应用程序中,我使用以下代码来切换视角:

IWorkbenchWindow window = getViewSite().getWorkbenchWindow();
window.getWorkbench().showPerspective(PRODUCT_PERSPECTIVE_ID, window);

我没有更改代码,但我将开发环境从

java 6 64bits + windows + Eclipse Indigo

java 7 32bits + windows + Eclipse Juno

现在,透视图不再切换,无一例外,并且在调试中没有任何可疑的东西。

我没有找到任何错误报告。

有解释吗?解决方法?

WReach:

我也遇到了这个问题。据我所知,这是Juno(4.2.0)中的回归。我使用调试器逐步完成了对showPerspective()的调用任何时候都没有做出任何明确尝试来实际改变视角。也许缺少内部事件侦听器,或者showPerspective()到新框架的端口不完整。

解决方法是,以下代码为我成功地改变了观点:

IWorkbenchWindow window = getViewSite().getWorkbenchWindow();
IPerspectiveRegistry registry = workbench.getPerspectiveRegistry();
IWorkbenchPage page = window.getActivePage();
page.setPerspective(registry.findPerspectiveWithId(PRODUCT_PERSPECTIVE_ID));

根据进行这些调用的上下文,您可能希望对其中一些调用进行空防护,或进行检查Workbench.isClosing()以确保安全。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章