Eclipse plugin 使用E4创建应用程序

Eclipse plugin 使用E4创建应用程序,eclipse-plugin,e4,Eclipse Plugin,E4,我正在学习如何使用E4,而现在我正在与插件结构作斗争 在我们的“普通”E3应用程序中,我们有多个模块,如: 模块A-审计 模块B-基本功能 模块D-文件管理 模块U-用户管理 然后我们用它们构建了多个应用程序: 客户1-模块A、B 客户2-模块B、D 客户3-模块A、B、D、U 因为这些应用程序有完全不同的用例,所以每个应用程序的布局都略有不同 然而,在E4中,依赖结构似乎发生了变化。“base”现在是应用程序(application.e4xmi的插件),模块注册它们自己 因此,在本例中

我正在学习如何使用E4,而现在我正在与插件结构作斗争

在我们的“普通”E3应用程序中,我们有多个模块,如:

  • 模块A-审计
  • 模块B-基本功能
  • 模块D-文件管理
  • 模块U-用户管理
然后我们用它们构建了多个应用程序:

  • 客户1-模块A、B
  • 客户2-模块B、D
  • 客户3-模块A、B、D、U
因为这些应用程序有完全不同的用例,所以每个应用程序的布局都略有不同

然而,在E4中,依赖结构似乎发生了变化。“base”现在是应用程序(application.e4xmi的插件),模块注册它们自己

因此,在本例中,模块B必须以某种方式为客户1、2和3的应用程序的ID注册自己。。。这要么是不可能的,要么就是愚蠢透顶

使用E4创建普通应用程序有什么最佳实践吗?还是将依赖关系翻转回来

我们能想到的最好办法是在我们的基础中的某个地方有一个虚拟应用程序,然后以编程方式完成所有事情。这至少会阻止我们使用可怕的应用程序编辑器,但由于E4的“无例外无日志”策略,我担心我们会很快创建无法维护的代码


那么,关于如何工作有什么想法吗?

插件可以使用
org.eclipse.e4.workbench.model
扩展点为应用程序中定义的基本UI提供“片段”。e4xmi@greg-449在我们的例子中,应用程序是最顶级的组件,因此模块还不知道具体的应用程序ID。此外,插件不能也不应该决定视图、编辑器和命令的显示位置。您可以通过在扩展元素id字段中使用XPath表达式来避免指定应用程序id,例如
XPath://
@greg-449您能详细说明一下吗?我尝试了各种各样的XPath表达式作为“扩展元素ID”,它所做的只是破坏fragment.e4xmi。我唯一使用的是
XPath://
,它应该与指定应用程序ID完全相同。XPath是application.e4xmi文件中的路径(这只是XML)。注意,它必须以
xpath:
开头才能识别为xpath,因此
xpath://
是xpath表达式
/
(根元素)(另请参见)