9.6 Données persistantes

Écrit par Neil Deakin , mise à jour par les contributeurs à MDC .
Traduit par Alain B. (04/04/2007).
Page originale : http://developer.mozilla.org/en/docs/XUL_Tutorial/Persistent_Data

Attention : Ce tutoriel est ancien et n'est pas mis à jour. Bien que beaucoup d'informations soient encore valables pour les dernières versions de gecko, beaucoup sont aussi obsolètes. Il est préférable d'aller consulter cette page sur la version française de ce tutoriel sur developer.mozilla.org.

Cete section décrit comment sauvegarder l'état d'une fenêtre XUL.

Mémorisation d'un état

Lors de la création d'une application importante, il est fréquent de vouloir sauvegarder l'état d'une fenêtre tout au long des sessions. Par exemple, la fenêtre doit se souvenir quelles é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, cette opération deviendrait pénible à chaque application. Heureusement, XUL propose un 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 sauvegarder l'état de n'importe quel élément. Typiquement, vous pouvez sauvegarder 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.

Attribut persist

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'éléments 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 devrez 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.

Exemple de recherche de fichiers

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

Cette modification 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. La mémorisation de l'onglet sélectionné n'aurait aucun sens.

Exemple de recherche de fichiers : Source Voir


Dans la section suivante, nous verrons comment appliquer des feuilles de styles à des fichiers XUL.


Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.