在由于Eclipse朱诺一个RCP应用交换机的角度?(Switch perspective in a

2019-06-26 08:50发布

在我的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报告。

是否有一个解释? 一种解决方法?

Answer 1:

我遇到了这个问题为好。 据我所知,它是在朱诺回归(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()是安全的。



Answer 2:

这是错误https://bugs.eclipse.org/bugs/show_bug.cgi?id=395084和固定计划于6月发布的Eclipse月神。



Answer 3:

这里有一个答案,其目的是澄清和解决我的问题:

使用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个目标,并用它来构建。

下面是完整的程序:

  1. 有JDK 7安装(32位版本)
  2. 安装Eclipse 3.7(32位版本)
  3. 安装Eclipse 4(32位版本)
  4. 启动Eclipse 4并导入所需的项目
  5. 转到窗口/首选项/插件开发/目标平台
  6. 点击“添加”,然后“没什么”
  7. 点击“添加”,然后选择“安装”,然后选择你的Eclipse 3.7的目录
  8. 一旦你的目标创建,选择它(仍处于窗口/首选项/插件开发/目标平台)

现在,在你的.product的“Eclipse的产品导出向导”将建立一个Eclipse可执行3。

实践说明:

  • “清除所有”是不够的,我不得不停止/启动Eclipse得到它的目标选择后工作
  • 在安装过程中删除了一些对我的.product领域。 我不得不重新设置该ID,并检查“的产品包括本地laucher神器”


文章来源: Switch perspective in a RCP application since Eclipse Juno?