Sortieren von Trees

die Einzelnen Spalten eines Trees können sortiert werden indem auf die Spaltenüberschrift geklickt wird. Es gibt 3 Zustände

Damit die Spalte sortierbar wird muss das Attribut class=„sortDirectionIndicator“ angegeben werden.

Durch das Attribut sort=„rdf:http://www.oesi.org/xul/rdf/adresse/rdf#adresse_id“ wird angegeben nach welchem Feld sortiert werden soll

<treecol id="kontakt-adressen-treecol-typ" label="Typ" flex="1" hidden="false"
		class="sortDirectionIndicator"
		sort="rdf:http://www.oesi.org/xul/rdf/adresse/rdf#adresse_id" onclick="AdresseTreeSort()"/>

Achtung: nach dem sortieren ist ein anderer Eintrag markiert als vorher! Es muss daher selbst darauf geachtet werden, dass nach dem sortieren wieder der richtige Eintrag markiert werden. Dazu speichern wir uns vor dem sortieren den markierten Eintrag und setzen ihn danach wieder neu:

function AdresseTreeSort()
{
	var i;
	var tree=document.getElementById('adresse-tree');
	if(tree.currentIndex>=0)
		i = tree.currentIndex;
	else
		i = 0;
	col = tree.columns ? tree.columns["adresse-treecol-adresse_id"] : "adresse-treecol-adresse_id";
	SelectedID = tree.view.getCellText(i,col);
	window.setTimeout("TreeSelectEntry()",10);
}