xulfr.org

10.7 Héritage XBL

Écrit par Neil Deakin. Traduit par Nadine Henry (17/09/2004).
Page originale : http://www.xulplanet.com/tutorials/xultu/xblinherit.html xulplanet.com

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.

Une liaison peut être étendue à 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 ceux que cette liaison a 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 champs de saisie qui ajoute le texte http://www au début de sa valeur lorsque la touche F4 est pressée.

Exemple 10.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 ici hérite du champs de saisie XUL textbox. L'URL donnée dans l'attribut extends ci-dessus est l'URL de la liaison de la balise textbox. Cela signifie que nous héritons de tous les contenus et comportements fournis par la liaison de textbox. En plus, nous ajoutons un gestionnaire qui répond à l'évènement keypress.

Champ de saisie à 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 avec une liaison XBL qui étend celle du champs de saisie textbox basique.

Le champ de saisie à saisie semi-automatique ajoute une gestion spéciale d'évènement de telle sorte que quand 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 quel type de données à surveiller. Dans ce cas, la valeur history, qui surveille les URLs dans l'historique, est utilisée. (Vous pouvez aussi utiliser la valeur addrbook pour surveiller les adresses dans le carnet d'adresses.)


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