Réserver une Démo

SVP notez : Cette page d’aide n’est pas pour la dernière version d’Enterprise Architect. La dernière aide peut être trouvée ici.

Pré. Proc.

Ajouter des compartiments personnalisés à l'élément

Lorsque vous affichez un élément sur un diagramme dans un format rectangulaire normal, il est possible d'afficher un certain nombre de compartiments dans ce cadre pour révéler des caractéristiques supplémentaires telles que des attributs, des opérations et des Notes , en utilisant le diagramme ' Propriétés ' et l'élément 'Visibilité des compartiments' dialogues. Si vous souhaitez révéler d'autres caractéristiques ajoutées, telles que des éléments associés ou des ports et des pièces, vous pouvez utiliser un Shape Script pour ajouter des compartiments personnalisés à l'affichage du diagramme de l'élément. Vous ajouterez généralement ce Shape Script à un élément Stéréotype dans un Profil.

Après avoir créé un compartiment personnalisé, vous pouvez ajouter une Note liée à l'élément pour afficher le contenu du compartiment, comme vous pouvez le faire pour les autres fonctionnalités de l'élément.

Accéder

Définissez un élément Stereotype dans un profil et utilisez l'attribut spécial '_image' pour spécifier un Shape Script qui ajoute des compartiments personnalisés.

Ruban

Design > Element > Fonctionnalités > Attributes : [créer un attribut nommé '_image'] > cliquer sur l'icône Browse. dans le champ 'Valeur Initiale'

Paramètres > Données de référence > Types UML > Stéréotypes : (sélectionnez ou spécifiez un stéréotype) : Shape Script > Attribuer

Menu Contexte

Dans diagramme , cliquez-droit sur l'élément | Fonctionnalités | Attributes : [créer un attribut nommé '_image'] | cliquez sur Browse. dans le champ 'Valeur initiale'

Raccourcis Clavier

F9 : [créer un attribut nommé '_image'] > cliquer sur l'icône Browse. dans le champ 'Valeur initiale'

Ajouter des compartiments personnalisés aux éléments

Ce tableau fournit des notes sur la création de Shape Scripts qui définissent des compartiments personnalisés, ainsi qu'une variété d'exemples.

Processus

Description

Voir également

Développer le scénario

Pour le stéréotype sélectionné, ouvrez l'éditeur de forme.

Dans le script, remplacez shape main par :

  • forme ChildElement ou
  • forme RelatedElement
Vous pouvez conserver la forme principale si vous préférez, pour ajuster certaines propriétés de l'élément principal (comme la couleur) ; cependant, la forme principale nécessite alors un appel à 'DrawNativeShape()' pour fonctionner correctement.

À ce stade, vous pouvez utiliser la méthode de requête "HasProperty" pour rechercher des éléments enfants ou associés pour des propriétés spécifiques (telles que des stéréotypes) à afficher dans des compartiments. Un script de forme RelatedElement détermine les propriétés des éléments qui sont liés à l'élément actuel via des connecteurs.

La visibilité de chaque compartiment personnalisé individuel défini par un Shape Script est contrôlée à l'aide de la boîte de dialogue « Visibilité du compartiment ». Les compartiments ChildElement sont visibles par défaut et peuvent être masqués à l'aide des options de visibilité des compartiments, tandis que les compartiments RelatedElement sont masqués. par défaut et doit être activé explicitement à l'aide des options de visibilité du compartiment.

Sachez également que les éléments enfants peuvent être affichés dans un compartiment personnalisé soit lorsqu'ils sont sur le diagramme avec l'élément parent, soit lorsqu'ils ne sont pas sur le diagramme (comme dans les exemples 1, 2 et 3). Les éléments associés ne peuvent être listés dans un compartiment que s'ils ne sont PAS sur le même diagramme (comme dans les exemples 4 et 5).

Éditeur de forme Méthodes de dessin Méthodes Query Élément d'affichage/ Propriétés du Connecteur

Joindre une Note liée

Vous pouvez utiliser l'une des deux méthodes pour créer une Note liée afin d'afficher le contenu d'un compartiment personnalisé :

  • Méthode 1 (l'élément affiche actuellement des compartiments personnalisés) - mettez en surbrillance le nom de l'élément associé ou enfant dans le compartiment personnalisé, puis cliquez-droit dessus et sélectionnez l'option "Créer une Note liée" ; le compartiment personnalisé est automatiquement fermé et la Note liée ajoutée au diagramme répertoriant tous les noms d'éléments dans ce compartiment
  • Méthode 2 (l'élément n'affiche pas nécessairement des compartiments personnalisés) - faites glisser un élément Note depuis la page "Commun" de la boîte à outils Diagramme et liez-le à l'élément contenant le compartiment personnalisé avec un connecteur Notelink
    Cliquez-droit sur le connecteur et sélectionnez l'option 'Lier cette note à une fonctionnalité de l'élément', pour afficher la boîte de dialogue 'Lier la note à la fonctionnalité de l'élément' ; cliquez sur la flèche déroulante dans le champ ' Type de Fonctionnalité ' et cliquez sur le nom du compartiment personnalisé, tel que ' Propriétés ', puis cliquez sur le bouton OK
    Le contenu de ce compartiment est affiché dans la Note
Dans la méthode 2, si le compartiment est affiché, la méthode ne masquera PAS le compartiment. Il est recommandé d'utiliser cette méthode si le compartiment est déjà masqué.

Toute modification que vous apportez à la liste des éléments du compartiment ou à leurs noms est immédiatement répercutée dans la Note afin de maintenir l'exactitude des informations affichées.

Exemple de script 1 : Ajouter un compartiment sans ajuster l'élément parent

//Ajouter des compartiments pour les éléments enfants.

forme ChildElement

{

//Vérifier si un élément enfant a le stéréotype de propriété, si tel est le cas

//le nom du compartiment à Propriétés .

if(HasProperty("stéréotype", "propriété"))

{

SetCompartmentName( " Propriétés ");

}

//Vérifier si l'élément enfant a une portée publique et si c'est le cas ajouter le +

//symbole au compartiment enfant.

if(HasProperty("portée", "public"))

{

AppendCompartmentText("+");

}

//Ajouter le nom des éléments enfants au compartiment enfant.

AppendCompartmentText("#NOM#");

}

Le Shape Script vérifie tous les éléments enfants pour voir s'ils ont un stéréotype de <<property>>. Si ce stéréotype est trouvé, la fonction 'SetCompartmentName' définit un compartiment appelé ' Propriétés '.

Le script vérifie ensuite si l'élément enfant a une portée 'public' et, si c'est le cas, ajoute le symbole '+'.

Enfin, la fonction 'AppendCompartmentText' ajoute le nom de l'élément enfant au compartiment.

Si un compartiment a déjà été déclaré par 'SetCompartmentName', tous les éléments enfants supplémentaires qui relèvent du même compartiment lui sont automatiquement ajoutés sans avoir à déclarer un nouveau nom de compartiment (c'est-à-dire tous les éléments enfants avec le stéréotype <<property>> finissent dans le compartiment ' Propriétés ').

Exemple de script 2 : Ajuster la couleur de l'élément parent et ajouter des compartiments enfants

//La forme principale affecte le parent

forme principale

{

// Définit la couleur de l'élément parent en rouge

setfillcolor(255,0,0);

// dessine la forme native des parents

forme_dessinée();

}

//Shape ChildElement ajoute des compartiments enfants au parent.

forme ChildElement

{

if(HasProperty("stereotype", "part"))

{

SetCompartmentName("Parts");

}

sinon si(HasProperty("stéréotype", "monstéréotype"))

{

SetCompartmentName("Mon Stéréotype");

}

AppendCompartmentText("#NOM#");

}

La section 'shape main' définit la couleur de l'élément principal sur rouge et ajoute des compartiments enfants basés sur des éléments enfants stéréotypés.

Le script vérifie si un élément enfant a la valeur de stéréotype 'part' ou ' valeur ' qui lui est appliqué. S'il y a plusieurs éléments enfants, ayant une combinaison de stéréotypes 'part' et 'mystereotype', deux compartiments sont créés appelés 'Parts' et 'My Stereotype'.

Pour afficher les compartiments, 'AppendCompartmentText' doit être appelé pour insérer du contenu dans le compartiment.

Les valeurs transmises à 'SetCompartmentName' et 'AppendCompartmentText' ne peuvent pas contenir de caractères de nouvelle ligne.

Exemple de script 3 : lister uniquement l'élément enfant dans le compartiment s'il n'est pas déjà visible sur le diagramme

forme ChildElement

{

//Vérifier si l'élément enfant est sur le diagramme ou non.

if(hasproperty("EstVisible", "Faux"))

{

//Créer un compartiment pour les pièces.

if(hasproperty("type", "partie"))

{

SetCompartmentName("Parts");

}

//Créer un compartiment pour les ports.

sinon si(hasproperty("type", "port"))

{

SetNomCompartiment("Ports");

}

//Ajouter le nom de l'élément enfant au compartiment.

AppendCompartmentText("#NOM#");

}

}

Ce script ajoute des compartiments personnalisés pour les éléments Port et Part qui appartiennent à l'élément actuel mais qui ne sont pas visibles sur le diagramme actuel.

La propriété 'IsVisible' renvoie True si l'élément enfant est déjà visible sur le diagramme , False si l'élément enfant n'est pas visible.

Cela peut être utilisé pour empêcher l'élément enfant d'être répertorié dans le compartiment personnalisé s'il est déjà visible sur le diagramme , évitant ainsi l'affichage d'informations redondantes.

Exemple de script 4 : afficher les éléments qui sont la cible d'un connecteur de dépendance à partir de l'élément qui possède le script de forme

forme RelatedElement

{

//Vérifier si le connecteur actuel que nous traitons a un

// type de dépendance.

if(HasProperty("Connector. Type ", "Dependency"))

{

//Vérifier si l'élément que nous vérifions actuellement est

//la cible du connecteur courant.

if(HasProperty("Element.IsTarget"))

{

//Définir le nom du compartiment

SetCompartmentName("dependsOn");

if(HasProperty("Element.Stereotype", " "))

{

}

autre

{

AppendCompartmentText(""#Element.Stereotype#"");

}

AppendCompartmentText("#Element.Name#");

}

}

}

Avec ce script, si un Class1 a un stéréotype avec le Shape Script 'RelatedElement' et que Class1 est la source d'un connecteur Dependency vers le Class2 cible, alors le nom Class2 est affiché dans un compartiment de Class 1, appelé 'dependsOn'.

Exemple de script 5 : afficher une liste d'interfaces réalisées dans un compartiment sur un élément

forme RelatedElement

{

//Vérifier si le connecteur en cours de traitement est une réalisation

if(HasProperty("Connector. Type ", "Realization"))

{

// N'affiche ce compartiment que si l'élément associé que nous

// vérifient est la cible du connecteur qui a ceci

//Mettre en forme l'élément Script comme source

if(HasProperty("Element.IsTarget"))

{

//Si l'élément est une interface, affichez-le dans

//Compartiment 'Interfaces réalisées'

if(HasProperty("Element. Type ", "Interface"))

{

SetCompartmentName("realizedInterfaces");

AppendCompartmentText("#Element.Name#");

}

}

}

}

Si un élément Classe 1 a ce Shape Script et est la source d'un connecteur de réalisation vers un élément Interface 1, le nom 'Interface 1' est affiché dans le compartiment 'realizedInterfaces' de la Classe 1.

Notes

  • Si vous utilisez des signes de ponctuation dans un nom de compartiment, ils sont supprimés lors de l'enregistrement du script ; par exemple : 'Ports, Parts et Propriétés ' devient 'Ports Parts et Propriétés '
  • Les scripts de forme « Scripts » ont des capacités étendues pour vérifier à la fois un connecteur et l'élément à l'autre extrémité du connecteur ; ils ne s'appliquent qu'à un élément et sont uniquement utilisés pour récupérer des informations à afficher dans un compartiment de cet élément

Apprenez Plus