【问题标题】:Different representation for superclass and subclass超类和子类的不同表示
【发布时间】:2017-04-03 19:05:55
【问题描述】:

我是使用 Sirius 创建编辑器的新手,我有以下 EMF 模型:

我想为给定的元模型创建一个 Sirius 编辑器,并为 Superclass ASubclass B 提供不同的表示。

AB 都可以实例化,Class B 有额外的属性和引用。在Subclass B 的表示中,我只想显示来自Superclass A 的有限数量的属性和来自Subclass B 的一些附加属性。

现在的想法是拥有不同的容器,并根据我想要显示相应容器的类。到目前为止,当我在 Sirius 编辑器中定义了两个容器时,每个类一个,我创建了一个 Subclass B 的实例,我现在在表示中得到了两个容器,一个表示用于 Superclass A,另一个表示表示为Subclass B

有什么方法可以告诉 Sirius 只显示相应类的容器?

【问题讨论】:

    标签: eclipse emf ecore eclipse-sirius


    【解决方案1】:

    那么您的 .odesgin 文件中有两个不同的图表元素 A 和 B?

    您可以限制应应用图形表示的元素列表。这可以通过图表元素中的“语义候选表达式”来完成。您可以轻松地使用Java Services 过滤您的模型树并返回一个Collection<EObject>,其中包含您希望以图形方式表示的所有相关元素(查看链接,它已被完美解释)。

    如果图表元素只应用于父模型对象的特定功能,请查看feature: 选项。在“语义候选表达式”字段中输入feature:,然后按 ctrl + 空格,您应该会看到一个列表,其中包含您定义为此图表元素的父 EObject 的 EObject 的所有可能特征。

    (通过“图表元素”,我总是指 .odesign 视点中定义的“容器”/“节点”元素)

    【讨论】:

      猜你喜欢
      • 2017-10-08
      • 2013-12-28
      • 2022-01-23
      • 2019-02-19
      • 2014-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多