Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
Un tutorial su XUL: alberi (18/25)
Scritto da Christian Bencivenni il 17-04-2009 ore 11:44
Intel Cluster Studio XE
L’oggetto tree è un componente pensato per visualizzare dinamicamente i dati; il contenuto e la struttura varia fin dall’inizio e durante le varie fasi del processo lavorativo. Esso può assomigliare a una lista, a una tabella o, appunto, a una struttura ad albero. Contrariamente alla listbox però la struttura dell’oggetto è divisa tra la parte visualizzata, l’oggetto tree, e il contenuto dinamico, treeview.

Cominciamo ad analizzare l’elemento tree: treecols e treecol sono sostanzialmente simili a quanto visto per le tabelle: il primo definisce il raggruppamento di colonne mentre il secondo il numero effettivo di colonne e i loro parametri.
  1. <tree>
  2.     <treecols>
  3.     <treecol label="Nome"/>
  4.     <treecol label="Cognome"/>
  5.     <treecol label="E-mail"/>
  6.     </treecols>
  7.  </tree>
Se la colonna è gerarchica, è necessario specificare un attributo primario:
  1. <treecol primary="true" label="Name"/>
treechildren invece definisce il corpo della struttura dell’albero così come la sua parte dinamica; è posizionato dopo treecols e contiene elementi treeitems:
  1. <?tree>
  2.     <treecols>
  3.     </treecols>
  4.      <treechildren>
  5.      <treeitem>
  6.               ....
  7.     </treechildren>
  8. </tree>
Un treeitem contiene una linea della “tabella dell’albero” (o treerow) e più specificatamente elementi treechildren in un numero variabile. Il termine può sembrare una contraddizione, ma dovete pensare alla struttura ad albero come a una tabella dinamica, in cui il numero di righe, colonne ed elementi può variare in base alle esigenze di visualizzazione dell’utente. Una treerow contiene sostanzialmente una linea della tabella formata da un numero variabile di treeitem o un numero fisso di treecell corrispondente al numero di colonne specificato da treecols; treecell è quindi un elemento indivisibile che contiene informazioni.

Proviamo ora a costruire una tabella utilizzando le arborescenze di XUL. In una tabella, il numero delle celle all’interno di un oggetto treeitem deve combaciare esattamente con il numero delle colonne in treecols. Il dinamismo intrinseco, specificato all’inizio del capitolo, in questo caso è legato al numero di righe, che è variabile e può modificarsi durante l’uso del programma di interfaccia. In aggiunta è possibile modificare il numero delle colonne visualizzate, nascondendole e mostrandole a seconda delle esigenze. Vediamo un esempio:
  1. <??xml version='1.0'?>
  2. <window 
  3.    id="hello"  
  4.    title="Tree" 
  5.    width="500" 
  6.   height="300" 
  7.   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" >
  8.  
  9. <box flex="1">
  10. 	<tree flex="1">
  11. 		<treecols >
  12. 			<treecol label="Nome" width="120" />
  13. 			<treecol label="Cognome" width="120" />
  14. 			<treecol label="E-mail" width="200" />
  15. 		</treecols>
  16. 		<treechildren>
  17. 			<treeitem>
  18. 				<treerow>
  19. 					<treecell label="Bullock" />
  20. 					<treecell label="Sandra" />
  21. 					<treecell label="non disponibile" />
  22. 				</treerow>
  23. 			</treeitem>
  24. 			<treeitem>	
  25. 				<treerow>
  26. 					<treecell label="Roberts" />
  27. 					<treecell label="Julia" />
  28. 					<treecell label="non disponibile" />
  29. 				</treerow>
  30. 			</treeitem>	
  31. 			<treeitem>	
  32. 				<treerow>
  33. 					<treecell label="Johanson" />
  34. 					<treecell label="Scarlett" />					
  35. 					<treecell label="non disponibile" />
  36. 				</treerow>
  37. 			</treeitem>	
  38. 		</treechildren>
  39. 	</tree>
  40. </box>
  41. </window>
Se visualizzate l’esempio precedente avrete una dimostrazione dell’utilizzo dell’albero come una tabella e della possibilità di visualizzare o meno delle colonne specifiche.
Precedente: Codice malevolo iniettato nel kernel di Linux
Successiva: WASP, il linguaggio di programmazione per i sensori wireless (1/2)
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.304 secondi.