java - 自 Eclipse Juno 以来,在 RCP 应用程序中切换视角?

标签 java eclipse eclipse-rcp eclipse-indigo eclipse-juno

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

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

我没有更改我的代码,但我更改了我的开发环境

java 6 64bits + windows + Eclipse Indigo

java 7 32bits + windows + Eclipse Juno

现在视角不再切换,毫无异常(exception),在调试中也看不到任何可疑的东西。

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

有解释吗?解决方法?

最佳答案

我也遇到过这个问题。据我所知,这是 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() 以确保安全。

关于java - 自 Eclipse Juno 以来,在 RCP 应用程序中切换视角?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11523187/

相关文章:

eclipse - 带有 tomcat 的 Java EE 服务器上的 NoClassDefFoundError

eclipse-plugin - 如何创建我自己的shell来替换e4 RCP中MTrimmedWindow中创建的shell?

java - writeShort in little Endian : hex shows big, 但打开只适用于 le

java - 将值拆分为两个随机数

Java 深度克隆 - 如果可克隆,则克隆 ArrayList 中的每个元素,无论类型如何

java - 使用 iFolderLayout 的 Eclipse RCP 中的隐藏 View 部分

java - 在 Eclipse 中向 Project Explorer 添加过滤器

java - 我们可以放大缩小在 Canvas 上绘制的图形吗?

Eclipse 对 JSF 文件中的 EL 表达式给出了太多错误和警告

任何 google-play-services 功能的 java.lang.NoClassDefFoundError