2016-08-21 4 views
1

Je suis nouveau à la création d'éditeurs avec Sirius et j'ai le modèle EMF suivant:représentation différente pour superclasse et sous-classe

enter image description here

Je veux créer un éditeur Sirius pour le méta-modèle donné avec différents représentations pour Superclass A et Subclass B. Les deux classes A et B peuvent être instanciées et Class B a des attributs et des références supplémentaires. Dans la représentation pour Subclass B, je veux seulement montrer un nombre limité d'attributs de Superclass A et quelques attributs supplémentaires de Subclass B.

L'idée est maintenant d'avoir différents conteneurs et en fonction de quelle classe c'est que je veux montrer le conteneur respectif. Jusqu'à présent quand j'ai deux conteneurs définis dans l'éditeur Sirius, un pour chaque classe et je crée une instance de Subclass B Je reçois maintenant deux conteneurs dans la représentation, l'un avec la représentation pour Superclass A et l'autre avec la représentation pour Subclass B.

Est-ce que je peux dire à Sirius de montrer seulement le conteneur de la classe respective?

Répondre

3

Vous avez donc deux éléments de diagramme différents pour A et B dans votre fichier .odesgin?

Vous pouvez limiter la liste des éléments sur lesquels la représentation graphique doit être appliquée. Cela peut être fait avec "l'expression des candidats sémantiques" à votre élément de diagramme. Vous pouvez facilement utiliser Java Services pour filtrer votre arbre modèle et renvoyer un Collection<EObject> avec tous les éléments pertinents que vous souhaitez représenter graphiquement (voir le lien, il est parfaitement expliqué).

Si l'élément de diagramme ne doit être appliqué qu'à une caractéristique spécifique de l'objet modèle parent, consultez l'option feature:. Tapez feature: dans le champ 'Expression des candidats sémantiques' et appuyez sur ctrl + espace, vous devriez voir une liste avec toutes les fonctionnalités possibles pour l'objet EObject que vous avez défini comme EObject parent pour cet élément de diagramme.

(Par « élément de diagramme » Je me réfère toujours à la « Container »/« Node » élément défini dans le point de vue .odesign)