Outils pour utilisateurs

Outils du site


public:appel_macro_par_macro

Ceci est une ancienne révision du document !


Soit “AMacro.groovy” la macro “A” et “BMacro.groovy” la macro “B”

“BMacro.groovy” :

package org.txm.macro

import org.kohsuke.args4j.*
import groovy.transform.Field
import org.txm.rcpapplication.swt.widget.parameters.*

@Field @Option(name="string",usage="an example string", widget="String", required=false, def="hello world!")
def string
@Field @Option(name="string2",usage="an example string", widget="String", required=false, def="hello world!")
def string2

if (!ParametersDialog.open(this)) return;

println "string vaut $string"
println "string2 vaut $string2"

A peut appeler B avec :

gse.run BMacro ["args":["string":"bonjour depuis A"]]

Ce code ouvrira la boite des paramètres de B, mais sans le champ “string”

gse.run BMacro ["args":["string":"bonjour depuis A", "string2":"2e bonjour depuis A"]]

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) :

gse.run BMacro ["string":"bonjour depuis A"]

Améliorations possibles

A peut appeler B avec :

gse.runMacro B ["args":["string":"bonjour depuis A"]]

ou alors si “gse.run” ne trouve pas “B.groovy” essaye avec “BMacro.groovy”

ou alors ne pas utiliser “Macro.groovy” pour détecter une macro d'un script, et alors

gse.run B ["args":["string":"bonjour depuis A"]]

suffit

public/appel_macro_par_macro.1425052446.txt.gz · Dernière modification: 2015/02/27 16:54 par matthieu.decorde@ens-lyon.fr