如何通过链接到ApplicationModelEclipse插件的片段创建视图

如何通过链接到ApplicationModelEclipse插件的片段创建视图,eclipse,e4,Eclipse,E4,使用application.e4xmi,我希望通过使用此应用程序模型的片段创建视图。你能告诉我一步一步的程序吗 我尝试过的是,我在一个插件应用程序中创建了一个片段。在我创建了零件堆栈之后以及创建了零件之后,我已经给出了应用程序id。这里我给出的类URI是我的视图类(viewplugin项目中视图类的路径)。但是如果runconfigurations中没有视图插件,我就看不到视图部分。据我所知,您希望有一个插件包含一个模型片段,该片段有助于位于另一个插件中的应用程序模型,问题是(视图-)您试图以这

使用application.e4xmi,我希望通过使用此应用程序模型的片段创建视图。你能告诉我一步一步的程序吗


我尝试过的是,我在一个插件应用程序中创建了一个片段。在我创建了零件堆栈之后以及创建了零件之后,我已经给出了应用程序id。这里我给出的类URI是我的视图类(viewplugin项目中视图类的路径)。但是如果runconfigurations中没有视图插件,我就看不到视图部分。

据我所知,您希望有一个插件包含一个模型片段,该片段有助于位于另一个插件中的应用程序模型,问题是(视图-)您试图以这种方式贡献的部分不会显示在应用程序窗口中。我希望我没有弄错,我会假设错误不仅仅是带有模型片段的插件没有包含在运行配置中。。。(?)

您可以在中找到有用的教程。然而,由于各种需求可能会令人困惑,我将为未来的潜在读者总结这个过程

TL;博士

  • 您可能为零件设置了错误的元素ID和/或特征名称
  • 您的问题意味着您可能尝试将零件模型元素实现为ViewPart,但在E4中,不再有任何接口可供(视图)零件实现,因此您可能尝试在
    @PostConstruct
    -注释方法中创建零件控件
  • 您贡献的部分未显示的另一个可能原因是提供模型片段的插件没有正确设置捆绑包选项
    SymbolicName
    和/或
    ActivationPolicy
    (“插件是单例的”和“加载类时激活”)
应用 为了有一个应用程序模型,我们首先需要一个Eclipse4应用程序项目。从Eclipse主菜单中选择File->New->Other创建一个。在Eclipse4类别中选择向导Eclipse4应用程序项目。根据您的意愿命名您的项目,选择Equinox作为OSGI框架,并选中Generate a Activator。。。选项新创建的项目将包含一个文件
Application.e4xmi
(您的应用程序模型)和一个
*.product
文件(产品定义)。在中打开后者,并确保在Overview选项卡中将
org.eclipse.e4.ui.workbench.swt.E4Application
设置为应用程序

打开
Application.e4xmi
并在模型树中的某个位置追加一个零件堆栈,您可能已经这样做了

模型片段 为模型片段创建一个新插件。让它拥有一个
Activator
类不会有什么坏处。但是,重要的是,当加载了该插件的一个类并且该插件是单例插件时,必须在其
plugin.xml
编辑器的Overview选项卡中选中这些选项以激活该插件。接下来,使用New->Other…->创建一个模型片段Eclipse 4->模型->插件的PackageExplorer上下文菜单中的新模型片段。向导将自动创建
org.bbaw.bts.ui.pdr.fragment
的扩展名,指定您的模型片段文件。插件的依赖项应包括:

org.eclipse.swt
org.eclipse.jface
org.eclipse.e4.core.di
org.eclipse.e4.ui.workbench
javax.inject
org.eclipse.e4.ui.di
打开模型片段文件(
fragment.e4xmi
),并将模型片段附加到模型片段节点。您的新模型片段元素需要同时指定元素ID和Featurename,以便正确寻址您希望参与的应用程序模型元素。因此,将先前在应用程序模型中创建的零件堆栈的ID复制到刚才创建的模型片段的元素ID字段中。在Featurename字段中,键入
children
,因为这是我们要参与的零件堆栈属性。然后,将一个部件附加到模型片段元素,并指定部件实现的类URI。这个类基本上是一个POJO,不需要实现
ViewPart
!它使用带有
@PostConstruct
注释的方法创建GUI,例如

@PostConstruct
public final void createComposite(final Composite parent)

应该是这样。当运行应用程序项目的产品时,该部分应该像预期的那样出现(考虑到包含该部分的插件包含在运行配置中…)

“在运行配置中使用该视图插件”是什么意思?您必须让所有插件都处于运行配置中。