超类和子类的不同表示
Different representation for superclass and subclass
我是使用 Sirius 创建编辑器的新手,我有以下 EMF 模型:
我想为给定的元模型创建一个 Sirius 编辑器,其中 Superclass A
和 Subclass B
具有不同的表示形式。
classes A
和B
都可以实例化,Class B
有额外的属性和引用。在 Subclass B
的表示中,我只想显示 Superclass A
的有限数量的属性和 Subclass B
的一些附加属性。
现在的想法是使用不同的容器,并且根据 class 我想显示相应的容器。到目前为止,当我在 Sirius 编辑器中定义了两个容器,每个 class 一个,我创建了一个 Subclass B
的实例,我现在在表示中得到两个容器,一个表示用于 [=10] =] 和一个代表 Subclass B
。
有什么方法可以让 Sirius 只显示相应 class 的容器?
所以您的 .odesgin 文件中有 A 和 B 的两个不同图表元素?
您可以限制应用图形表示的元素列表。这可以通过图表元素中的 "Semantic Candidates Expression" 来完成。您可以轻松地使用 Java Services 来过滤您的模型树和 return 一个 Collection<EObject>
以及您想要以图形方式表示的所有相关元素(看看 link,它解释得很完美)。
如果图元素仅应应用于父模型对象的特定功能,请查看 feature:
选项。在 'Semantic Candidates Expression' 字段中输入 feature:
并按 ctrl + space,您应该会看到一个列表,其中包含您定义为该图元素的父 EObject 的 EObject 的所有可能功能。
(通过 'Diagram Element' 我总是引用 .odesign Viewpoint 中定义的 'Container'/'Node' 元素)
我是使用 Sirius 创建编辑器的新手,我有以下 EMF 模型:
我想为给定的元模型创建一个 Sirius 编辑器,其中 Superclass A
和 Subclass B
具有不同的表示形式。
classes A
和B
都可以实例化,Class B
有额外的属性和引用。在 Subclass B
的表示中,我只想显示 Superclass A
的有限数量的属性和 Subclass B
的一些附加属性。
现在的想法是使用不同的容器,并且根据 class 我想显示相应的容器。到目前为止,当我在 Sirius 编辑器中定义了两个容器,每个 class 一个,我创建了一个 Subclass B
的实例,我现在在表示中得到两个容器,一个表示用于 [=10] =] 和一个代表 Subclass B
。
有什么方法可以让 Sirius 只显示相应 class 的容器?
所以您的 .odesgin 文件中有 A 和 B 的两个不同图表元素?
您可以限制应用图形表示的元素列表。这可以通过图表元素中的 "Semantic Candidates Expression" 来完成。您可以轻松地使用 Java Services 来过滤您的模型树和 return 一个 Collection<EObject>
以及您想要以图形方式表示的所有相关元素(看看 link,它解释得很完美)。
如果图元素仅应应用于父模型对象的特定功能,请查看 feature:
选项。在 'Semantic Candidates Expression' 字段中输入 feature:
并按 ctrl + space,您应该会看到一个列表,其中包含您定义为该图元素的父 EObject 的 EObject 的所有可能功能。
(通过 'Diagram Element' 我总是引用 .odesign Viewpoint 中定义的 'Container'/'Node' 元素)