Écrit par Neil Deakin.
Traduit par Alain B. (15/07/2005).
Page originale :
http://www.xulplanet.com/tutorials/xulqa/q_sorter.html
Vous pouvez trier des données dès lors qu'elles sont générées en RDF. Il est habituel de trier du contenu dans un arbre, toutefois vous pouvez trier n'importe quel contenu généré depuis un gabarit.
Vous pouvez utiliser l'attribut sortResource
pour spécifier la ressource à trier. Utilisez l'attribut sortDirection
pour spécifier l'ordre du tri. Ces deux attributs doivent être présent pour le tri des données.
L'exemple suivant montre le tri de contenu :
Voir
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="sort-window" title="Exemple de trie"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script>
function changeSort()
{
// récupère la boîte à trier
var box = document.getElementById("info");
// si l'ordre du tri est décroissant, il est modifié en croissant.
// Sinon, il est défini en décroissant.
if (box.getAttribute("sortDirection") == "descending")
box.setAttribute("sortDirection","ascending");
else box.setAttribute("sortDirection","descending");
// vous devez reconstruire le contenu après la modification des informations de tri
box.builder.rebuild();
}
</script>
<button label="Inverse" oncommand="changeSort();"/>
<vbox id="info" datasources="animals.rdf"
ref="http://www.some-fictitious-zoo.com/mammals" flex="1"
sortResource="http://www.some-fictitious-zoo.com/rdf#name" sortDirection="ascending">
<template>
<label uri="rdf:*" value="rdf:http://www.some-fictitious-zoo.com/rdf#name"/>
</template>
</vbox>
</window>
Dans cet exemple, les données sont triées par nom (name), comme indiqué par l'attribut sortResource
. Toutefois, n'importe quelle propriété peut être utilisée même si elle n'est pas affichée.
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.