<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Le 13/02/2018 à 15:52, Samuel Gougeon a
      écrit :<br>
    </div>
    <blockquote cite="mid:2bacefe0-4f71-d8ee-1371-7e624b76060e@free.fr"
      type="cite">
      <meta http-equiv="content-type" content="text/html;
        charset=windows-1252">
      <p>Bonjour,</p>
      <p>Je souhaite utiliser l'interface des Préférences pour gérer les
        variables de configuration du module externe "uman". L'exemple
        donné dans le module SCI/contrib/toolbox_skeleton fonctionne
        bien :</p>
      <ul>
        <li>la construction du formulaire est assez claire et
          paramétrable.<br>
        </li>
        <li>après validation du formulaire, on récupère bien les valeurs
          actualisées dans le fichier SCIHOME/uman_preferences.xml<br>
        </li>
      </ul>
      <p>Cependant, l'usage du fichier
        SCI/contrib/toolbox_skeleton/etc/toolbox_skeleton.xsl est assez
        obscur.<br>
        Ce fichier ne semble en réalité pas utilisé. Il n'est pas non
        plus documenté (je n'ai rien trouvé).<br>
      </p>
    </blockquote>
    <br>
    Bon, je suis finalement parvenu à construire un fichier
    uman_preferences.xsl qui fonctionne.<br>
    Il sera distribué et utilisé par la prochaine version de uman() sur
    ATOMS.<br>
    <br>
    Dans le modele SCI/contrib/toolbox_skeleton de module externe
    distribué dans Scilab 6,<br>
    un second exemple fonctionnel utilisant le langage .xsl (qui n'est
    pas trivial..) pourra être<br>
    ajouté avec son fichier .xml associé, pour illustration d'une page
    d'aide à préparer.<br>
    <br>
    <br>
    <br>
    <blockquote cite="mid:2bacefe0-4f71-d8ee-1371-7e624b76060e@free.fr"
      type="cite">
      <p> <br>
        Ce fichier ne semble en réalité pas utilisé. Il n'est pas non
        plus documenté (je n'ai rien trouvé).<br>
        <br>
        J'espérais y trouver un moyen de déclarer des actions (callback)
        liées</p>
      <ul>
        <li>soit à chaque paramètre des préférences, exécutable lors de
          la modification de chaque paramètre<br>
        </li>
        <li>soit exécutable lors de la validation "Apply" ou "OK" (dont
          la distinction <a moz-do-not-send="true"
            href="http://bugzilla.scilab.org/show_bug.cgi?id=12675">reste
            mystérieuse</a>...) de l'interface des préférences</li>
      </ul>
      <p>L'idée est de pouvoir actualiser dans la session Scilab <u>en
          cours</u> les paramètres actualisés.<br>
        Le fait de devoir redémarrer Scilab pour que ce soit le cas --
        via le uman.start, dans lequel on peut lire le fichier
        uman_preferences.xml et faire toutes les initialisations
        souhaitables -- n'est vraiment pas pratique.</p>
      <p>Donc : existe-t-il une fonction scilab <br>
      </p>
      <ul>
        <li>définissable par l'auteur de chaque module externe<br>
        </li>
        <li>appelée lors de la validation de l'interface des préférences</li>
      </ul>
      ou quelque chose de similaire ?<br>
      Merci<br>
      <br>
      Samuel<br>
      <br>
      PS : j'ai aussi regardé comment les items des préférences de
      Scilab sont gérés, s'il y a des actions définies dessus, etc. J'ai
      cru comprendre que oui, mais seulement en java. Une confirmation
      serait appréciable. Un démenti encore plus :) Surtout s'il est
      documenté :))<br>
    </blockquote>
    <br>
    Pour le module uman, on peut faire sans, car il y a une seule
    fonction : uman().<br>
    Il est donc possible d'ajouter au début de celle-ci une ligne
    actualisant les <br>
    variables de configuration du module, si le fichier de préférences a
    été modifié<br>
    (on peut utiliser le code md5 du fichier pour détecter ses
    modifications).<br>
    <br>
    Mais dans le cas le plus fréquent où un module a N>1 fonctions,
    il serait<br>
    absurde d'ajouter cela en tête de chaque fonction. Et le problème
    demeure.<br>
    <br>
    En creusant, on peut trouver le fichier<br>
    edit SCI/modules/console/etc/Actions-Configuration.xml<br>
    <br>
    Une de ses lignes se présente comme suit :<br>
    <pre style="font-family:Monospaced;font-style:normal;font-size:12.0;"><span style="color:rgb(92,92,92);"><</span><span style="color:rgb(0,0,0);">entry</span> <span style="color:rgb(50,185,185);">type</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">java</span><span style="color:rgb(188,143,143);">"</span> <span style="color:rgb(0,0,0);">action</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">TabifyAction</span><span style="color:rgb(188,143,143);">"</span> <span style="color:rgb(0,0,0);">name</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">scinotes-tabify</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(92,92,92);">>

J'ai cru comprendre que le name est utilisé comme identifiant dans le .xsl (mais on s'y perd un peu..)
En en-tête du fichier, on lit </span>
<span style="color:rgb(92,92,92);"><</span><span style="color:rgb(0,0,0);">!</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(92,92,92);">-</span> <span style="color:rgb(0,0,0);">Map</span> <span style="color:rgb(0,0,0);">between</span> <span style="color:rgb(0,0,0);">action</span> <span style="color:rgb(0,0,0);">names</span> <span style="color:rgb(50,185,185);">and</span> <span style="color:rgb(188,143,143);">Java</span> <span style="color:rgb(188,143,143);">or</span> <span style="color:rgb(188,143,143);">Scilab</span> <span style="color:rgb(188,143,143);">action</span> <span style="color:rgb(188,143,143);">--</span><span style="color:rgb(188,143,143);">></span></pre>
    Donc une entry avec type="scilab" devrait être possible, avec une
    action=".."<br>
    qui serait une série d'instructions en Scilab.<br>
    <br>
    Le principal problème est de mettre les choses dans l'ordre, et
    surtout de faire la même chose pour un module externe. À moins que
    le nom de fichier "Actions-Configuration.xml" soit générique et
    utilisable dans le dossier ~/etc/ de n'importe quel module externe,
    ce n'est pas gagné...<br>
    <br>
    Pour contribution au débroussaillage...<br>
    <br>
    Samuel<br>
    <br>
  </body>
</html>