Attention : Le contenu de ces pages n'a pas été mis à jour depuis longtemps. Il est probablement obsolète pour Firefox 4.0/Gecko 4.0 et supérieur. Pour du contenu plus récent, allez consulter developer.mozilla.org.

Autosuggest

Voilà le fameux textbox[type="autosuggest"] fonctionnant en remote.

syntaxe : fichier XUL

  <?xml-stylesheet href="[[jar:xbl/textfield/textfield.jar!/textfield.css]]" type="text/css"?>

minimum avec un rdf repondant au standard detaillé plus bas:

	<textbox type="autosuggest" autosuggestsearch="jsp/suggestion.jsp"/>

avec toutes les option personnalisable :

	<textbox type="autosuggest" autosuggestsearch="jsp/suggestion.jsp" autosuggestparam="start" autosuggestlimit="limit" limit="1000"
		minlength="0"
		maxrows="20"
		ref="[[urn:suggest:values]]"
		label="[[rdf:urn:suggest:rdf#label]]"
		properties="[[rdf:urn:suggest:rdf#prop]] issuggest_[[rdf:urn:suggest:rdf#issuggest]]"
		issuggest="[[rdf:urn:suggest:rdf#issuggest"/]]>

details :

  • *autosuggestsearch** : url du RDF
  • *autosuggestparam** : nom du paramettre de recherche (defaut "start")
  • *autosuggestlimit** : nom du paramettre de limite de resultat (defaut "limit")
  • *limit** : valeur du paramettre de limite de resultat (defaut 1000)
  • *minlength** : nombre de caracteres minimum avant de faire une recherche (default 1)
  • *maxrows** : nombre maximum de ligne dans la popup (defaut 20)
  • *ref** : attribut "ref" associé au "rdf"
  • *label** : resource RDF qui s'affichera sur chaque ligne
  • *properties** : resource RDF qui permet de remplir l'attribut "properties" de chaque treecell. Et ainsi mettre des icones par exemple
  • *issuggest** : resource RDF qui dira si la ligne est une suggestion ou pas. si "false", la ligne ne sera pas selectionnable. Utile dans le cas d'une liste de suggestion arborescente, et dont certain noeuds container ne seraient pas selectionnable.

Notez que je me sert aussi de issuggest dans l'attribut 'properities' cella me permettra de griser les ligne non selectionnable.

  • *FORMAT DU RDF**
  • *KEY:label**="à" : c'est ce qui s'affichera dans chaque treecell
  • *KEY:prop**="" : facultatif, properties des treecell
  • *KEY:issuggest**="" : facultatif, rends inactif au click ou ENTER sur la ligne
	<?xml version="1.0" encoding="UTF-8"?>
	<RDF:RDF [[xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#]]" [[xmlns:NC="http://home.netscape.com/NC-rdf#]]" [[xmlns:KEY="urn:suggest:rdf#]]">
		<RDF:Seq RDF:about="[[urn:suggest:values]]">
			<RDF:li><RDF:Description KEY:label="à" KEY:prop="" KEY:issuggest="" /></RDF:li>
			<RDF:li><RDF:Description KEY:label="a" KEY:prop="" KEY:issuggest=""/></RDF:li>
			<RDF:li><RDF:Description KEY:label="aï" KEY:prop="" KEY:issuggest=""/></RDF:li>
			<RDF:li><RDF:Description KEY:label="av" KEY:prop="" KEY:issuggest=""/></RDF:li>
			<RDF:li><RDF:Description KEY:label="as" KEY:prop="" KEY:issuggest=""/></RDF:li>
			<RDF:li><RDF:Description KEY:label="ah" KEY:prop="" KEY:issuggest=""/></RDF:li>
			<RDF:li><RDF:Description KEY:label="al" KEY:prop="" KEY:issuggest=""/></RDF:li>
			<RDF:li><RDF:Description KEY:label="au" KEY:prop="" KEY:issuggest=""/></RDF:li>
			<RDF:li><RDF:Description KEY:label="an" KEY:prop="" KEY:issuggest=""/></RDF:li>
			<RDF:li><RDF:Description KEY:label="ai" KEY:prop="" KEY:issuggest=""/></RDF:li>
		</RDF:Seq>
		<RDF:Seq RDF:about="[[urn:suggest:nb"]]>
			<RDF:li><RDF:Description RDF:number="10"/></RDF:li>
		</RDF:Seq>
	</RDF:RDF>
  • *IMPORTANT**

la Sequence finale qui informe le composant du nombre de ligne retourné. à tjs renseigner

		<RDF:Seq RDF:about="[[urn:suggest:nb"]]>
			<RDF:li><RDF:Description RDF:number="10"/></RDF:li>
		</RDF:Seq>

demo

textfield.jar

  • *à mettre dans un repertoire 'xbl/textfield', à la racine de votre site**

Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

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.