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.

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#" );

}

}

Apprenez Plus