Outils pour utilisateurs

Outils du site


public:appel_macro_par_macro

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
public:appel_macro_par_macro [2015/02/27 16:54]
matthieu.decorde@ens-lyon.fr créée
public:appel_macro_par_macro [2016/07/06 18:04] (Version actuelle)
slh@ens-lyon.fr
Ligne 1: Ligne 1:
-Soit "​AMacro.groovy" la macro "A" et "​BMacro.groovy"​ la macro "B"+===== Tutoriel d'​appel d'une macro par une autre macro ===== 
 + 
 +Soit deux macros A et B codées dans les scripts ​"​AMacro.groovy"​ et "​BMacro.groovy"​
 + 
 +=== Code de la macro B appelée : "​BMacro.groovy" ​===
  
-"​BMacro.groovy"​ : 
 <​code>​ <​code>​
 package org.txm.macro package org.txm.macro
Ligne 9: Ligne 12:
 import org.txm.rcpapplication.swt.widget.parameters.* import org.txm.rcpapplication.swt.widget.parameters.*
  
-@Field @Option(name="​string",​usage="​an example string",​ widget="​String",​ required=false, def="hello world!")+// déclaration de paramètres 
 +@Field @Option(name="​string",​ usage="​an example string",​ widget="​String",​ required=true, def="default string from B")
 def string def string
-@Field @Option(name="​string2",​usage="​an example string",​ widget="​String",​ required=false,​ def="hello world!")+@Field @Option(name="​string2",​ usage="​an example string",​ widget="​String",​ required=false,​ def="default string2 from B")
 def string2 def string2
  
-if (!ParametersDialog.open(this)) return;+// ouverture de la boite de dialogue de saisie des paramètres 
 +if (!ParametersDialog.open(this)) return
  
-println "​string vaut $string"​ +// corps de la macro 
-println "​string2 vaut $string2"​+println "B: string vaut \"$string\"
 +println "B: string2 vaut \"$string2\""
 </​code>​ </​code>​
  
-peut appeler B avec  +=== Code de la macro appelante ​"​AMacro.groovy" ​===
-<​code>​ +
-gse.run BMacro ["​args":​["​string":"​bonjour depuis A"]] +
-</​code>​ +
-Ce code ouvrira la boite des paramètres de B, mais sans le champ "​string"+
  
 <​code>​ <​code>​
-gse.run BMacro ["​args":​["​string":"​bonjour depuis A", "​string2":"​2e bonjour depuis A"]] +package org.txm.macro
-</​code>​ +
-Ce code n'​ouvrira pas la boite des paramètres de B+
  
-On utilise ​"args" comme conteneur ​de variables, car "B" ​déclare déjà une variable "​string",​ on ne peut donc pas faire (depuis AMacro.groovy) : +println ​"A: appel de B" 
-<code> + 
-gse.run BMacro ["​string":"​bonjour ​depuis A"] +// Ce code n'​ouvrira pas la boite des paramètres de B, car tous les paramètres sont renseignés 
-</​code>​+gse.runMacro(BMacro["​string":"​string initialisée depuis A", "​string2":"​string2 initialisée ​depuis A"])
  
-==== Améliorations possibles ====+println "A: appel de B"
  
-A peut appeler B avec :  +// ou bien 
-<code> +// Ce code ouvrira la boite des paramètres de B, car '​string'​ est obligatoire et pas renseigné. 
-gse.runMacro ​["args":​["​string":"​bonjour ​depuis A"]]+gse.runMacro(BMacro, ​["string2":"​string2 initialisée ​depuis A"])
 </​code>​ </​code>​
  
-ou alors si "​gse.run"​ ne trouve pas "​B.groovy"​ essaye avec "​BMacro.groovy"​+===== Recette =====
  
-ou alors ne pas utiliser "Macro.groovy"​ pour détecter une macro d'un script, ​et alors  +  * créer dans la vue Macro les macros A et B avec le code ci-dessus 
-<​code>​ +  * double-cliquer sur l'​icone de A : 
-gse.run ["args":["​string":"​bonjour ​depuis A"]]+    * la boite de dialogue de B ne s'​ouvre que lors du deuxième appel de B 
 +    * la console affiche :<​code>​ 
 +Exécution de AMacro.groovy 
 +A: appel de B 
 +B: string vaut "string initialisée depuis A" 
 +Bstring2 vaut "string2 initialisée depuis A" 
 +A: appel de B 
 +B: string ​vaut "default string from B" 
 +Bstring2 vaut "string2 initialisée ​depuis A"
 </​code>​ </​code>​
-suffit 
  
public/appel_macro_par_macro.1425052446.txt.gz · Dernière modification: 2015/02/27 16:54 par matthieu.decorde@ens-lyon.fr