【问题标题】:How to use the 'Mixed-Mode' approach (which uses both the 'e3' as well as the 'e4' API's) into an RCP Project如何在 RCP 项目中使用“混合模式”方法(同时使用“e3”和“e4”API)
【发布时间】:2015-12-26 16:09:54
【问题描述】:

我从 GitHub 下载了一个示例项目here,它使用了 RCP 开发的混合模式。在该项目中,他们将“e4”D.I 功能访问到现有的 3.x RCP 应用程序中。

我也为我的 3.x RCP 应用程序(它有我自己的 .product 文件)尝试了相同的方法,但是我在“MyLegacyIDE.e4xmi”文件中定义的菜单(或部分)没有反映到启动的产品和 UI(菜单、视图、部件等)与我的 Eclipse 3.x 系列中的相同。将 MyLegacyIDE.e4xmi 文件添加到我的插件项目时,没有任何新情况发生。

另外,我已将“applicationXMI”参数指向我在插件位置定义的 XMI 文件,例如:

<extension
     id="product"
     point="org.eclipse.core.runtime.products">
  <product
        application="com.ami.veb.ui.application"
        name="VeB - e4 Product">
     <property
           name="applicationXMI"
           value="MyLegacyIDE.e4xmi">
     </property>
  </product>

建议将不胜感激!

根本原因(我的问题):

在调试时,我发现我的应用程序模型(“MyLegacyIDE.e4xmi”)没有被 Eclipse 正确加载。在以下行中(在加载 Application Model 期间):

Resource applicationResource = loadResource(applicationDefinitionInstance); of ResourceHandler.java ['org.eclipse.e4.ui.internal.workbench' plugin]

applicationDefinitionInstance --> 仍然指向“org.eclipse.ui.workbench”插件下存在的“LegacyIDE.e4xmi”,而不是我在我的文件中定义的 XMI 文件(“MyLegacyIDE.e4xmi”) plugin.xml 文件。

(即“applicationDefinitionInstance”的值是“platform:/plugin/org.eclipse.ui.workbench/LegacyIDE.e4xmi”而不是“platform:/plugin/com.ami.veb.ui/MyLegacyIDE.e4xmi ")

如果我哪里出错了,请纠正我。

【问题讨论】:

  • 您能否提供您的 plugin.xml 的所有相关部分?例如,定义您的应用程序的位置。另外,您是否尝试过简单地使用示例 RCP 作为起点,即删除您不需要的内容并用您自己的内容替换它?

标签: eclipse dependency-injection eclipse-rcp e4 emf


【解决方案1】:

我错过了包括修剪窗口。将 Trimmed 窗口添加到我的 LegacyIDE.e4xmi 后,我的 Eclipse 3.x RCP 应用程序现在能够实现混合模式。

<children xsi:type="basic:TrimmedWindow" xmi:id="_qBUjQHb5EeWNbY4EJKhljA" elementId="com.ami.veb.ui.trimmedwindow.0"/>

最初,我错误地认为修剪窗口是必需的。仅当整个布局由应用程序模型控制时(即,仅当我完全迁移到 e4 架构时)。

后来我发现,在将它添加到我的 LegacyIDE.e4xmi 文件后,我可以将应用程序模型加载到我的 3.x Eclipse 工作区中。

【讨论】:

  • 尽管现在我能够将应用程序模型加载到我的 3.x Eclipse 应用程序中。我不确定(我想知道)修剪窗口与混合模式有什么关系。实际上,我所有的 RCP 布局(视图、菜单等)都由 plugin.xml 控制,为什么需要这个 Trimmed 窗口。甚至实现混合模式。 - 只是想知道:)
猜你喜欢
  • 2015-11-06
  • 2019-01-19
  • 2018-02-07
  • 2017-04-29
  • 1970-01-01
  • 1970-01-01
  • 2020-10-18
  • 2010-11-19
  • 1970-01-01
相关资源
最近更新 更多