【问题标题】:Switch perspective in a RCP application since Eclipse Juno?自 Eclipse Juno 以来在 RCP 应用程序中切换透视图?
【发布时间】:2012-07-16 09:57:42
【问题描述】:

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

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

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

java 6 64bits + windows + Eclipse Indigo

java 7 32bits + windows + Eclipse Juno

现在视角不再切换,无一例外,调试中也没有任何可疑之处。

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

有解释吗?解决方法?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 谢谢。这不是我为我的程序选择的解决方案,我做了我的回答中所写的,因为 Juno 太多错误和丑陋,无法进入生产。但是您的回答似乎不错,可能对其他人有用,所以我终于接受了:)
    • @dystroy 感谢您的接受。我得出了和你一样的结论:4.x 版本还是太bug了。
    【解决方案2】:

    这是错误https://bugs.eclipse.org/bugs/show_bug.cgi?id=395084,已针对计划于 6 月发布的 Eclipse Luna 进行了修复。

    【讨论】:

    • 完全没问题。我实际上正在使用此处提供的解决方法,因为 Luna 尚未正式发布,并且使用它会产生其他错误。
    【解决方案3】:

    这是一个旨在澄清和解决我的问题的答案:

    使用 Eclipse 4 IDE,构建一个在 Eclipse 4 之前开发的 RCP 应用程序,集成 Java 7 特性并兼容 Windows 32 位。当然还可以切换视角。

    这个答案并不能解决那些想要在 RCP 应用程序中切换透视图并使用新 Eclipse 4 平台的功能或外观(不要与 Eclipse 4 IDE 混淆)的人的问题。但我不推荐它,至少对于旧应用程序(在 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. 进入Window/Preferences/Plug-in Development/Target Platform
    6. 点击“添加”,然后点击“无”
    7. 单击“添加”,然后单击“安装”并选择您的 Eclipse 3.7 目录
    8. 创建目标后,选择它(仍在 Window/Preferences/Plug-in Development/Target Platform 中)

    现在,在您的.product 中,“Eclipse 产品导出向导”将构建一个 Eclipse 3 可执行文件。

    实用笔记:

    • “全部清除”还不够,我必须在目标选择后停止/重新启动 Eclipse 才能使其正常工作
    • 安装过程删除了我的.product 字段中的一些内容。我必须重置 ID 并检查“该产品包含原生 laucher 工件”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-05
      • 2013-11-12
      • 1970-01-01
      • 2014-12-10
      • 2010-11-28
      • 2023-03-31
      相关资源
      最近更新 更多