【问题标题】:Create GMF diagram programmatically以编程方式创建 GMF 图
【发布时间】:2013-10-04 00:28:14
【问题描述】:

我尝试在 Eclipse 插件中使用 EMF 和 GMF 创建一个简单的图表。我创建了一个具有两个节点和连接的 Ecore。我能够从中生成 GMF。当我运行我的应用程序时,我得到了味觉,并且在它的帮助下我能够绘制 GMF 图。但我希望以编程方式。

我已经从那个 Ecore 创建了一个 XML,并且成功地能够将该 XML 加载到 EMF 对象中。所以我的 EObject 有那个 XML 值。现在我想要一个自动生成的 GMF 图。就像打开一个示例 RCP 视图一样,它应该加载 GMF 内容。

问题是我是这个 GMF 和 EMF 的新手,所以我不知道我要修改哪个类或我要写什么。

【问题讨论】:

  • 谁能帮助我...如果您需要更多信息,请告诉我。我已经为此做了一些编码......现在我正在使用 XMI 保存 ECORE 对象,然后尝试将 ECORE 对象加载到 GMF 图的顶部。但我没有找到任何具体的解决方案。提前感谢您的帮助。
  • 我自己解决了这个问题。如果有人在这方面需要帮助,请在问题上标记我。
  • 5 年后被困在同一个问题上,看到您没有提供解决问题的代码,这让我非常沮丧

标签: java eclipse-emf eclipse-gmf


【解决方案1】:

我有一个解决方案:

    ResourceSet resourceSet = new ResourceSetImpl();
    Diagram diagram = NotationFactory.eINSTANCE.createDiagram();
    diagram.setMeasurementUnit(MeasurementUnit.PIXEL_LITERAL);
    diagram.getStyles().add(NotationFactory.eINSTANCE.createDiagramStyle());
    diagram.setElement(object); //your EObject that should be referenced to this diagram (probably an ecore file)
    diagram.setType("Ecore");
    URI diagUri = URI.createFileURI(yourPathToECoreFile + "_diagram");
    Resource diagramResource = resourceSet.createResource(diagUri);
    diagramResource.getContents().add(diagram);

它对我有用……经过数小时的研究

PS:图表应该和你的ecore文件在同一个地方

【讨论】:

  • 你没有实例化resourceSet,也没有d。这些是从哪里来的?
  • 我已经更新了代码。抱歉:d实际上是图表,resourceSet初始化为:ResourceSet resourceSet = new ResourceSetImpl();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
  • 1970-01-01
  • 2013-02-26
  • 1970-01-01
  • 1970-01-01
  • 2012-10-21
相关资源
最近更新 更多