我是使用Sirius创建编辑器的新手,我有以下EMF模型:
我想为给定的元模型创建一个Sirius编辑器,其中包含Superclass A
和Subclass B
的不同表示形式。
可以实例化A
和B
类,Class B
具有其他属性和引用。在Subclass B
的表示中,我只想显示来自Superclass A
的有限数量的属性和来自Subclass B
的一些其他属性。
现在的想法是拥有不同的容器,并且根据我想要显示相应容器的类。到目前为止,我在Sirius编辑器中定义了两个容器,每个类一个,我创建了一个Subclass B
的实例,我现在在表示中得到两个容器,一个表示Superclass A
的表示,一个表示意为Subclass B
。
有什么办法可以告诉小天狼星只能展示各自班级的容器吗?
答案 0 :(得分:3)
所以你的.odesgin文件中有两个不同的A和B图元素?
您可以限制应该应用图形表示的元素列表。这可以通过语义候选表达&#34;语义候选表达式来完成。在你的图元素。您可以轻松使用Java Services过滤模型树,并返回Collection<EObject>
,其中包含您想要以图形方式表示的所有相关元素(请查看链接,完美解释)。
如果图元素仅应用于父模型对象的特定特征,请查看feature:
选项。在语义候选人表达式中键入feature:
&#39;字段和命中ctrl +空格,您应该看到一个列表,其中包含您定义为此图元素的父EObject的EObject的所有可能功能。
(通过&#39;图表元素&#39;我总是参考&#39;容器&#39; /&#39; Node&#39;在.odesign视点中定义的元素)