Écrit par Neil Deakin.
Traduit par Nadine Henry (17/09/2004).
Page originale :
http://www.xulplanet.com/tutorials/xultu/xblinherit.html
Dans cette section, nous verrons comment étendre des définitions XBL existantes.
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.
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.