Pré. | Proc. |
Exemples Scripts
Vous pouvez créer une large gamme de formes, d'effets et d'instructions textuelles à l'aide de Shape Scripts , afin d'améliorer l'apparence et la valeur informative des éléments et connecteurs que vous créez. Quelques exemples de tels scripts sont fournis ici.
Accéder
Ruban |
Paramètres > Données de référence > Types UML > Stéréotypes (spécifiez le stéréotype) : Shape Script + Attribuer, ou Paramètres > Données de référence > Types UML > Stéréotypes (spécifiez le stéréotype) : Shape Script + Edit |
Exemples
Forme |
Scénario |
---|---|
// FORMES DE BASE forme principale { setfillcolor(255, 0, 0); // (R,V,B) rectangle(0, 0, 90, 30); // (x1, y1 ,x2,y2) setfillcolor(0, 255, 0); // (R,V,B) ellipse(0, 30, 90, 60); // (x1, y1 ,x2,y2) setfillcolor(0, 0, 255); // (R,V,B) rectangle(0, 60, 90, 90); // (x1, y1 ,x2,y2) } |
|
// FORME CONDITIONNELLE UNIQUE forme principale { if (HasTag ("Déclencheur", "Lien")) { // Ne dessine que si l' object a une Valeur Étiquetée Trigger=Link // Définit la couleur de remplissage du chemin setfillcolor(0, 0, 0); startpath(); // Début pour tracer un chemin déplacer vers (23, 40); lineto(23, 60); lineto(50, 60); lineto(50, 76); lineto(76, 50); lineto(50, 23); lineto(50, 40); chemin de fin(); // Fin du traçage d'un chemin // Remplit le chemin tracé avec la couleur de remplissage fillandstrokepath(); retourner; } } |
|
// FORME MULTI CONDITIONNELLE forme principale { startpath(); ellipse(0, 0, 100, 100); chemin de fin(); fillandstrokepath(); ellipse(3, 3, 97,97); si (HasTag ("Déclencheur", "Aucun")) { retourner; } if (HasTag ("Déclencheur", "Erreur")) { setfillcolor(0, 0, 0); startpath(); déplacer vers (23, 77); lineto(37, 40); lineto(60, 47); lineto(77, 23); lineto(63, 60); lineto(40, 53); lineto(23, 77); chemin de fin(); fillandstrokepath(); retourner; } si (HasTag ("Déclencheur", "Message")) { rectangle(22, 22, 78, 78); déplacer vers (22, 22); lineto(50, 50); lineto(78, 22); retourner; } } |
|
// SOUS-FORMES forme principale { rectangle(0, 0, 100, 100); addsubshape("rouge", 10, 20); addsubshape("bleu", 30, 40); addsubshape("vert", 50, 20); addsubshape("rouge", 100, 20); forme rouge { setfillcolor(200, 50, 100); rectangle(0, 0, 100, 100); } forme bleu { setfillcolor(100, 50, 200); rectangle(0, 0, 100, 100); } forme verte { setfillcolor(50, 200, 100); rectangle(0, 0, 100, 100); } } |
|
// FORME DE CHAMP MODIFIABLE forme principale { rectangle(0, 0, 100, 100); addsubshape("namecompartment", 100, 20); addsubshape("stereotypecompartment", 100, 40); compartiment du nom de la forme { h_align = "centrer" ; champ modifiable = "nom" ; rectangle(0, 0, 100, 100); println("nom : #nom#"); } forme stéréotypecompartiment { h_align = "centrer" ; champ modifiable = "stéréotype" ; rectangle(0, 0, 100, 100); println("stéréotype : #stéréotype#"); } } |
|
// RENVOYER LA FORME DE LA DÉCLARATION forme principale { if (hasTag("alternatenotation", "false")) { // dessine le glyphe intégré d'ea forme_dessinée(); //quitter le script avec l'instruction return retourner; } autre { // autres commandes de notation //... rectangle(0, 0, 100, 100); } } |
|
//POSITION DE LA FORME DE L'ÉLÉMENT INTÉGRÉ SUR LE BORD PARENT forme principale { defsize(60,60); startpath(); if(hasproperty("parentedge","top")) { déplacer vers(0,100); lineto(50,0); lineto(100,100); } if(hasproperty("parentedge","bottom")) { déplacer vers(0,0); lineto(50,100); lineto(100,0); } if(hasproperty("parentedge","left")) { déplacer vers(100,0); lineto(0,50); lineto(100,100); } if(hasproperty("parentedge","right")) { déplacer vers(0,0); lineto(100,50); lineto(0,100); } chemin de fin(); setfillcolor(153,204,255); fillandstrokepath(); } |
|
// FORME D'EXEMPLE DE CLOUD CHEMIN forme principale { StartCloudPath(); Rectangle(0, 0, 100, 100); EndPath(); FillAndStrokePath(); } |
|
// FORME DU CONNECTEUR forme principale { // dessine une ligne pointillée pas d'ombre=vrai ; setlinestyle("TIRET"); déplacer vers(0,0); lineto(100,0); } source de forme { // dessine un cercle à l'extrémité de la source rotatif = vrai ; startpath(); ellipse(0,6,12,-6); chemin de fin(); fillandstrokepath(); } cible de forme { // dessine une pointe de flèche à l'extrémité cible rotatif = vrai ; startpath(); déplacer vers(0,0); lineto(16,6); lineto(16,-6); chemin de fin(); fillandstrokepath(); } |
|
// DOUBLE LIGNE forme principale { setlinestyle("DOUBLE"); déplacer vers(0,0); lineto(100,0); } |
|
SetAttachmentMode() |
// DÉFINIR LE MODE D'ATTACHEMENT forme principale { si ( apropriété ( "rectanglenotation" , "1" )) { SetAttachmentMode ( "normal" ); rectangle ( 0 , 0 , 100 , 100 ); } autre { SetAttachmentMode ( "losange" ); ellipse ( 0 , 0 , 100 , 100 ); } } Dans cet exemple, si l'élément a 'Rectangle Notation' activé, la commande SetAttachmentMode("normal") permettra aux connecteurs de s'attacher à n'importe quel point le long de chaque bord de l'élément (première forme). Si l'élément a 'Rectangle Notation' désactivé, la commande SetAttachmentMode("losange") permettra uniquement aux connecteurs de s'attacher au point central de chaque bord de l'élément ; c'est-à-dire en forme de losange (deuxième forme). Vous ne pouvez pas déplacer le point d'attache ailleurs sur ce bord. |
// SENS DE ROTATION forme principale { déplacer vers(0,0); lineto(100,0); setfixedregion(40,-10,60,10); rectangle(40,-10,60,10); if(hasproperty("rotationdirection","up")) { déplacer vers(60,-10); lineto(50,0); lineto(60,10); } if(hasproperty("rotationdirection","down")) { déplacer vers(40,-10); lineto(50,0); lineto(40,10); } if(hasproperty("rotationdirection","left")) { déplacer vers(40,-10); lineto(50,0); lineto(60,-10); } if(hasproperty("rotationdirection","right")) { déplacer vers(40,10); lineto(50,0); lineto(60,10); } } |
|
// OBTENIR UNE VALEUR RENVOYÉE PAR UN COMPLÉMENT forme principale { // Dessine un rectangle simple Rectangle(0,0,100,100); //Imprime la valeur de string renvoyée par Add-In "MyAddin", //Fonction "MonExemple" avec deux paramètres de string Print("#ADDIN:MonAddin, MonExemple, param1, param2#"); } // SIGNATURE DE MÉTHODE POUR LA FONCTION COMPLÉMENTAIRE : // Public Function MyExample( Référentiel As EA. Référentiel , // eaGuid As String , args As Variant) As Variant |
|
// AJOUTER DES COMPARTIMENTS PERSONNALISÉS EN FONCTION DES ÉLÉMENTS ENFANTS // OR ÉLÉMENTS CONNEXES (Voir la rubrique d'aide Ajouter des compartiments personnalisés à l'élément ) |
|
// RENVOIE LE FRONT ENTRANT AND SORTANT POUR LES CONNECTEURS // ENTRÉE AND SORTIE D'UN OBJET forme principale { // Dessine un rectangle simple Rectangle(0,0,100,100); //Imprime les bords entrants sur l'élément Print("Bord entrant : #bordinvenant#\n"); //Imprime les bords sortants sur l'élément Print("Bord sortant : #bordsortant#\n"); } |
|
// DESSINEZ UNE ICÔNE DE DÉCORATION AU-DESSUS DE LA DÉFAUT // FORME DE L'ÉLÉMENT courrier de décoration { orientation= "NE" ; image ("image d'icône", 0, 0, 100, 100); // "icon image" étant le nom de l'image 16x16 qui est chargée dans le gestionnaire d'images } |
|
// DESSINER UNE IMAGE A PARTIR D'UN FICHIER AND UN CHAMP DE NOM MODIFIABLE forme principale { addsubshape ("l'image", 100, 100); addsubshape ("namecompartment", 100, 100); façonner l'image { image ("élément image", 0, 0, 100, 100); // "element image" étant le nom de l'image qui est chargée dans le gestionnaire d'images } compartiment du nom de la forme { h_align = "centrer" ; champ modifiable = "nom" ; println ("#nom#"); } } |
|
// VÉRIFIER SI UNE ICÔNE D'ÉLÉMENT COMPOSITE EST NÉCESSAIRE // AND , SI OUI, EN TIRAGE UN composition de décoration { orientation="SE" ; if(hasproperty("IsDrawCompositeLinkIcon","true")) { startpath(); ellipse(-80,29,-10,71); ellipse(10,29,80,71); passer à(-10,50); lineto(10,50); chemin de fin(); chemin de trait(); } } |
|
// PERMETTRE A UN SHAPESCRIPT D'AFFICHER L'OBJET ENTIEREMENT PORTEE // NOM D'UN ÉLÉMENT PROPRIÉTAIRE, Y COMPRIS LES ÉLÉMENTS PROPRIÉTAIRES // AND POSSÉDER DES PAQUETS, LORSQUE LES PROPRIÉTÉS DU DIAGRAMME // L'OPTION 'DÉSACTIVER LES NOMS D'OBJET COMPLETS' EST // DÉSÉLECTIONNÉ, COMME POUR UN ÉLÉMENT SANS // SHAPESCRIPT. forme principale { layouttype= "bordure" ; rectangle (0, 0, 100, 100); addsubshape ("remplissage", "N"); addsubshape ("nom", "CENTRE"); rembourrage de forme { hauteur préférée=8 ; } nom de la forme { v_align= "haut" ; h_align= "centrer" ; printwrapped ("#qualifiedname#"); } } |
|
// AFFICHER LE NOM DU PACKAGE POSSÉDANT LORSQUE L'ÉLÉMENT // EST UTILISÉ SUR UN DIAGRAMME NON DANS CE PACKAGE, AND LE // L'OPTION 'AFFICHER L'ESPACE DE NOM' DES PROPRIÉTÉS DU DIAGRAMME EST SÉLECTIONNÉE. forme principale { layouttype= "bordure" ; v_align= "CENTRE" ; h_align= "CENTRE" ; ellipse (0, 0, 100, 100); printwrapped ("#nom#"); addsubshape ("chemin", "S"); chemin de forme { v_align= "haut" ; h_align= "centrer" ; si (hasproperty ("chemin du paquet", " ")) { } autre { printwrapped ( " (à partir de #packagepath#) " ); } } } |
|
parents cachés |
// Affiche une liste des généralisations d'un élément dans le coin supérieur droit. // Note : liste uniquement les éléments qui ne sont pas sur le diagramme courant . forme principal { layouttype = "bordure" ; rectangle ( 0 , 0 , 100 , 100 ); addsubshape ( "nom" , "centre" ); addsubshape ( "parents" , "N" );
forme nom { v_align = "centrer" ; h_align = "centrer" ; gras = vrai ; print ( "#nom#" ); }
forme parents { v_align = "haut" ; h_align = "droit" ; italique = vrai ; print ( "#parentscachés#" ); } } |