Pré. | Proc. |
Scriptlets
Les éléments de scriptlet contiennent JavaScript qui vous permet onglet au diagramme sous-jacent et à l'API d'élément pour personnaliser l'apparence, le texte, Valeur Étiquetés et d'autres propriétés de l'élément à la volée. Les scriptlets exécuter à chaque fois que le diagramme est chargé, ou peuvent être exécuter manuellement à la demande, fournissant diagrammes plus d'une seule vue statique.
Chaque scriptlet a accès à trois objets globaux en plus de l'environnement d'automatisation standard. Il s'agit de :
- theDiagram - une interface Diagramme d'automatisation pour le diagramme sur lequel réside le Scriptlet
- theElement - une interface d'élément d'automatisation pour l'artefact Scriptlet lui-même
- theInstance - une interface DiagramObject d'automatisation pour l'artefact Scriptlet lui-même
Accéder
Les scriptlets peuvent être placés sur n'importe quel diagramme . Vous pouvez placer n'importe quel nombre de scriptlets sur un diagramme et vous pouvez placer un scriptlet donné sur plusieurs diagramme .
Perspective |
Construction > Scriplets |
Boîte à outils Diagramme |
Pour créer un scriptlet :
|
Autorisations des scriptlets
Le code des Scriptlets ne peut pas modifier ou mettre à jour les éléments de la base de données du modèle. Il peut cependant lire et mettre à jour des copies des éléments affichés sur un diagramme . Les mises à jour des éléments effectuées par les Scriptlets ne sont PAS réécrites dans la base de données du modèle.
Modification du code du scriptlet
Pour ajouter du code à un Scriptlet ou pour modifier le code existant d'un Scriptlet, double-cliquez sur le Scriptlet sur un diagramme ou cliquez-droit et sélectionnez l'option de menu 'Edit Script'. La fenêtre Éditeur de Code s'ouvre, affichant le code du Scriptlet sélectionné. Modifiez le code JavaScript du Scriptlet, comme vous le feriez dans n'importe quel éditeur de code. Appuyez sur les touches
pour enregistrer vos modifications.An Example of a Scriptlet
This example comes from the model pattern 'Scriptlets > Simple', available through the Model Builder.//--- Example Scriptlet ---
function Scriptlet1()
{
var object as EA.DiagramObject;
object = theDiagram.GetObjectByGrid("A","2");
if(object)
{
Session.Output("Scriptlet1 for " + theDiagram.Name);
object.BackgroundColor = parseInt("0x554444",16);
object.FontColor = parseInt("0xeeeeee",16);
object.Update();
}
}
Scriptlet1();
Exécution d'un scriptlet
Les scriptlets sont exécuter à chaque fois que le diagramme qui les contient est chargé ou rechargé, avant que le diagramme ne soit affiché. Si un diagramme contient plusieurs Scriptlets, l'ordre dans lequel ils sont exécuter est déterminé par l'ordre Z des Scriptlets sur le diagramme . Les scriptlets peuvent également être exécuter manuellement à tout moment, en cliquant avec le bouton droit sur le Scriptlet et en choisissant l'option ' Exécuter le script' dans le menu contextuel.
Débogage d'un scriptlet
Vous pouvez déboguer un Scriptlet comme pour n'importe quelle autre section de code. Cliquez-droit sur le Scriptlet et sélectionnez l'option de menu ' Script Débogage '. Le Scriptlet s'affiche dans la Vue Déboguer .
Scriptlets sur Diagrammes de style grille
L'API d'automatisation dispose de certaines fonctions spécialisées que les scriptlets peuvent utiliser lorsqu'ils agissent sur diagrammes affichés dans un style de grille. Lorsqu'un diagramme est visualisé sous forme de grille, nous pouvons utiliser des fonctions d'automatisation pour récupérer des éléments à des emplacements de grille spécifiés. Le format d'emplacement est le même que celui que l'on voit dans une feuille de calcul, avec des colonnes étiquetées « A », « B », « C », ..., « AA », « AB », etc. et les lignes numérotées dans l'ordre.
Pour modifier l' apparence d'un élément de grille, récupérez son Object sous-jacent à l'aide de la fonction GetObjectByGrid.
Pour modifier la valeur d'un élément de grille, récupérez son élément sous-jacent à l'aide de la fonction GetElementByGrid.
Par exemple;
object = theDiagram.GetObjectByGrid("A", "2");
élément = theDiagram.GetElementByGrid("A", "2");