超类和子类的不同表示

时间:2016-08-21 18:58:18

标签: eclipse emf ecore eclipse-sirius

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

enter image description here

我想为给定的元模型创建一个Sirius编辑器,其中包含Superclass ASubclass B的不同表示形式。

可以实例化AB类,Class B具有其他属性和引用。在Subclass B的表示中,我只想显示来自Superclass A的有限数量的属性和来自Subclass B的一些其他属性。

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

有什么办法可以告诉小天狼星只能展示各自班级的容器吗?

1 个答案:

答案 0 :(得分:3)

所以你的.odesgin文件中有两个不同的A和B图元素?

您可以限制应该应用图形表示的元素列表。这可以通过语义候选表达&#34;语义候选表达式来完成。在你的图元素。您可以轻松使用Java Services过滤模型树,并返回Collection<EObject>,其中包含您想要以图形方式表示的所有相关元素(请查看链接,完美解释)。

如果图元素仅应用于父模型对象的特定特征,请查看feature:选项。在语义候选人表达式中键入feature:&#39;字段和命中ctrl +空格,您应该看到一个列表,其中包含您定义为此图元素的父EObject的EObject的所有可能功能。

(通过&#39;图表元素&#39;我总是参考&#39;容器&#39; /&#39; Node&#39;在.odesign视点中定义的元素)