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