11.7 Héritage XBL

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

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.

Dans cette section, nous verrons comment étendre des définitions XBL existantes.

Héritage

Parfois vous pouvez vouloir créer un élément graphique XBL qui est similaire à un élément existant. Par exemple, disons que vous souhaitez créer un bouton XBL avec une fenêtre surgissante. Une manière de faire pour le créer est de dupliquer le code XBL existant des boutons. Cependant, il serait préférable de simplement étendre ce code.

N'importe quelle liaison peut être étendue avec une autre. La liaison fille peut ajouter des propriétés, des méthodes et des gestionnaires d'événements. La liaison fille aura toutes les caractéristiques qui la définissent en plus des caractéristiques de la liaison dont elle hérite (et celles dont cette liaison aura elle même hérité et ainsi de suite dans l'arbre).

Pour étendre une liaison existante, ajoutez un attribut extends à l'intérieur de la balise binding. Par exemple, la liaison suivante crée un champ de saisie qui ajoute le texte http://www au début de sa valeur lorsque la touche F4 est pressée.

Exemple 11.7.1 : Source

<binding id="textboxwithhttp"
         extends="chrome://global/content/bindings/textbox.xml#textbox">
  <handlers>
    <handler event="keypress" keycode="VK_F4">
      this.value="http://www"+value;
    </handler>
  </handlers>
</binding>

L'élément XBL étend ici les fonctionnalités du champ de saisie XUL textbox. L'URL donnée dans l'attribut extends ci-dessus est l'URL de la liaison de la balise textbox. Elle signifie que la liaison hérite de tous les contenu et comportement fournis par la liaison de textbox. En plus, nous ajoutons un gestionnaire qui répond à l'événement keypress.

Champ de saisie semi-automatique

L'exemple ci-dessus est similaire au dispositif de saisie semi-automatique qui fonctionne sous Mozilla. Un champ de saisie qui supporte la saisie semi-automatique n'est qu'un champ de saisie basique étendu avec une liaison XBL.

Le champ de saisie semi-automatique ajoute une gestion spéciale d'événement de telle sorte que lorsqu'une URL est tapée, un menu va surgir proposant des suites de saisies possibles. Vous pouvez aussi l'utiliser dans vos propres applications. Créez simplement un textbox avec deux attributs spéciaux.

<textbox type="autocomplete" searchSessions="history"/>

Déclarez l'attribut type à autocomplete pour ajouter un dispositif de saisie semi-automatique à un champ de saisie existant. Déclarez searchSessions pour indiquer le type de données à surveiller. Dans ce cas, la valeur history surveillant les URLs dans l'historique est utilisée (Vous pouvez aussi utiliser la valeur addrbook pour surveiller les adresses dans le carnet d'adresses.)

Firefox utilise un mécanisme d'autocomplétion différent de celui de la suite Mozilla, consultez XUL:textbox (Firefox autocomplete).


Dans la prochaine section, nous verrons un exemple d'élément graphique défini en XBL.


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.