Écrit par Neil Deakin.
Traduit par Alain B. (20/02/2004).
Page originale :
http://www.xulplanet.com/tutorials/xultu/persist.html
Ce chapitre décrit comment sauvegarder l'état d'une fenêtre XUL.
Lors de la création d'une application importante, vous souhaitez souvent vouloir sauver l'état d'une fenêtre tout au long des sessions. Par exemple, la fenêtre doit se souvenir qu'elles étaient les barres d'outils masquées après que l'utilisateur l'ait quitté.
Une possibilité serait d'écrire un script chargé de collecter l'information que vous voulez sauvegarder et de l'enregistrer dans un fichier. Toutefois, cela deviendrait pénible à chaque application. Heureusement, XUL propose un tel mécanisme pour sauvegarder les états d'une fenêtre.
L'information est collectée et stockée dans un fichier RDF (localstore.rdf) dans le même répertoire que les autres préférences de l'utilisateur. Ce fichier retient les états de chaque fenêtre. Cette méthode a l'avantage de fonctionner avec les profils utilisateurs de Mozilla, ainsi chaque utilisateur a ses propres paramètres.
XUL vous permet de sauver l'état de n'importe quel élément. Typiquement, vous voulez sauver les états des barres d'outils, les positions des fenêtres et si certains panneaux sont affichés ou non, mais vous pouvez sauvegarder presque tout.
Pour permettre la sauvegarde d'états, vous devez simplement ajouter
l'attribut persist
à l'élément
qui contient la valeur que vous voulez sauvegarder. L'attribut persist
doit être affecté par une liste d'attributs séparés
par des espaces. L'élément concerné doit également
avoir un attribut id
pour permettre de l'identifier.
Par exemple, pour sauvegarder la position d'une fenêtre, vous devriez procéder comme ceci :
<window
id="someWindow"
width="200"
height="300"
persist="width height"
.
.
.
Les deux attributs de l'élément window
,
width
et height
,
seront sauvegardés. Vous pourriez ajouter à l'attribut persist
des attributs supplémentaires à mémoriser tout en les
séparant par un espace. Vous pouvez ajouter l'attribut persist
à n'importe quel élément et mémoriser n'importe
quel attribut. Vous pouvez utiliser des valeurs inhabituelles si vous ajustez
les attributs par un script.
Ajoutons un attribut persist
à quelques
éléments de notre boîte de dialogue de recherche de
fichiers. Pour sauvegarder la position de la fenêtre, nous devons
modifier l'élément window
:
<window
id="findfile-window"
title="Recherche de fichiers"
persist="screenX screenY width height"
orient="horizontal"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
Cela va sauvegarder la position x et y de la fenêtre, sa largeur et sa hauteur. Nous poursuivrons plus tard la mémorisation de l'état du séparateur. Ca n'aurait aucun sens de mémoriser l'onglet sélectionné.
Dans le chapitre suivant, nous trouverons comment ajouter une barre de menu à une fenêtre.