在我的RCP应用程序我使用此代码切换视角:
IWorkbenchWindow window = getViewSite().getWorkbenchWindow();
window.getWorkbench().showPerspective(PRODUCT_PERSPECTIVE_ID, window);
我没有改变我的代码,但我改变了我的研究与开发环境在从
java 6 64bits + windows + Eclipse Indigo
至
java 7 32bits + windows + Eclipse Juno
而现在的角度不切换任何更多的,没有例外,没有任何犯罪嫌疑人在调试可见。
我没有发现任何bug报告。
是否有一个解释? 一种解决方法?
我遇到了这个问题为好。 据我所知,它是在朱诺回归(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()
是安全的。
这是错误https://bugs.eclipse.org/bugs/show_bug.cgi?id=395084和固定计划于6月发布的Eclipse月神。
这里有一个答案,其目的是澄清和解决我的问题:
使用Eclipse 4个IDE,Eclipse的4前建立一个RCP应用developped,集成Java 7个的功能和兼容Windows 32位。 当然,能够切换视角。
这个答案没有解决那些谁愿意想切换视角的RCP应用和使用的功能或新的Eclipse 4平台(不与Eclipse IDE 4混淆)的外观的问题。 但我不会推荐它,至少在一个旧的应用程序(即developped基于Eclipse 3),因为:
- 这是如此缓慢它呈现的应用勉强可用
- 有许多故障的图形
- 有虫子,它们之间的一个关系视角切换
对于这3点,我不能说,如果它是由于Eclipse的4平台或Eclipse 3兼容层。 我希望专门为新的Eclipse 4平台将正常运行开发新的应用。
所以我的解决办法是定义一个Eclipse 3个目标,并用它来构建。
下面是完整的程序:
- 有JDK 7安装(32位版本)
- 安装Eclipse 3.7(32位版本)
- 安装Eclipse 4(32位版本)
- 启动Eclipse 4并导入所需的项目
- 转到窗口/首选项/插件开发/目标平台
- 点击“添加”,然后“没什么”
- 点击“添加”,然后选择“安装”,然后选择你的Eclipse 3.7的目录
- 一旦你的目标创建,选择它(仍处于窗口/首选项/插件开发/目标平台)
现在,在你的.product
的“Eclipse的产品导出向导”将建立一个Eclipse可执行3。
实践说明:
- “清除所有”是不够的,我不得不停止/启动Eclipse得到它的目标选择后工作
- 在安装过程中删除了一些对我的
.product
领域。 我不得不重新设置该ID,并检查“的产品包括本地laucher神器”