在我的RCP应用程序中,我使用以下代码来切换视角:
IWorkbenchWindow window = getViewSite().getWorkbenchWindow();
window.getWorkbench().showPerspective(PRODUCT_PERSPECTIVE_ID, window);
我没有更改代码,但我将开发环境从
java 6 64bits + windows + Eclipse Indigo
至
java 7 32bits + windows + Eclipse Juno
现在,透视图不再切换,无一例外,并且在调试中没有任何可疑的东西。
我没有找到任何错误报告。
有解释吗?解决方法?
我也遇到了这个问题。据我所知,这是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] 删除。
我来说两句