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

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
public:appel_macro_par_macro [2016/06/30 17:07]
slh@ens-lyon.fr
public:appel_macro_par_macro [2016/07/06 18:04] (Version actuelle)
slh@ens-lyon.fr
Ligne 3: Ligne 3:
 Soit deux macros A et B codées dans les scripts "​AMacro.groovy"​ et "​BMacro.groovy"​. 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"​+=== Code de la macro B appelée : "​BMacro.groovy" ​=== 
 <​code>​ <​code>​
 package org.txm.macro package org.txm.macro
Ligne 11: 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>​
  
-Code de la macro A appelante : "​AMacro.groovy"​+=== Code de la macro A appelante : "​AMacro.groovy" ​=== 
 <​code>​ <​code>​
 package org.txm.macro package org.txm.macro
  
-// appelle B avec la ligne suivante  +println "A: appel de B"
-gse.run BMacro ["​args"​:["​string":"​appel depuis A"]] +
-// Ce code ouvrira la boite de dialogue des paramètres ​de B, mais sans le champ "​string"+
  
-// ou bien +// Ce code n'​ouvrira pas la boite des paramètres de B, car tous les paramètres sont renseignés 
-gse.run BMacro ["args":["​string":"​appel ​depuis A", "​string2":"​2e appel depuis A"]+gse.runMacro(BMacro["string":"​string ​initialisée ​depuis A", "​string2":"​string2 initialisée ​depuis A"])
-</​code>​ +
-// Ce code n'​ouvrira pas la boite des paramètres de B+
  
 +println "A: appel de B"
  
-==== Améliorations possibles ==== +// ou bien 
- +// Ce code ouvrira la boite des paramètres de B, car '​string'​ est obligatoire et pas renseigné. 
-A peut appeler ​avec :  +gse.runMacro(BMacro, ​["string2":"​string2 initialisée ​depuis A"])
-<​code>​ +
-gse.runMacro ​["args":​["​string":"​bonjour ​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.1467299276.txt.gz · Dernière modification: 2016/06/30 17:07 par slh@ens-lyon.fr