Appliquer une expression (avancé) ################################# Objectif : même chose que précédemment, mais avec une entrée via une zone de texte. 1 – récupérer le .jsx de travail ******************************** Télécharger `appliquer_expression--avance.jsx <../../_static/scriptUI/appliquer_expression--avance.jsx>`_ (à placer dans le dossier ``Scripts`` ou ``Scripts/ScriptUI``) .. note:: importez aussi le .json précédent 2 – zones de texte éditables **************************** .. code-block:: javascript :emphasize-lines: 3,5 var texte_titrage = fenetre.add( 'statictext', limites_texte_titrage, 'application d\'une expression d\'import de données JSON', { multiline : true } ); // création de la zone de texte correspondant au métrage json voulu var zone_texte_metrage = fenetre.add( 'edittext', limites_zone_texte_metrage, 'métrage.json' ); // création de la zone de texte correspondant à la clé voulue var zone_texte_cle = fenetre.add( 'edittext', limites_zone_texte_cle, 'clé' ); // création du bouton déclenchant l'application de l'expression var bouton_valider = fenetre.add( 'button', limites_bouton_valider, 'ajouter une expression' ); .. note:: On ajoute ici des zones éditables en précisant le type ``statictext``. 3 – récupération des zones de texte éditables ********************************************* .. code-block:: javascript :emphasize-lines: 3 bouton_valider.onClick = function () { // var expression = modele_expression.replace( '{metrage}', zone_texte_metrage.text ).replace( '{cle_propriete}', zone_texte_cle.text ); appliquer_expression( expression ); }; .. note:: Ici la création de l'expression à la volée à partir du modèle d'expression se fait par un double remplacement en utilisant les valeurs des zones de texte éditables.