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
Un tutorial su XUL: etichette e testo (12/25)
Scritto da Christian Bencivenni il 19-03-2009 ore 12:22
Intel Cluster Studio XE
Nei capitoli precedenti abbiamo cominciato a lavorare sulle interfacce dando una prima schematizzazione grafica dell’applicazione e cominciando a parlare di eventi associati a pulsanti. Il metodo più ovvio per comunicare con l‘utente finale è comunque il contenuto, quindi, prima di proseguire nel nostro tutorial su XUL, approfondiamo l'argomento testo.

Facendo un paragone con HTML, per permettere all’utente di immettere testo ci servirebbe un oggetto equivalente al tag input. La controparte di XUL si chiama textbox, ma al contrario dell’HTML è possibile inserire molto più di una singola riga, se correttamente descritto dai suoi attributi.
  1. <textbox multiline= " true "/>

L’attributo multiline permette l’inserimento di più righe, ma è necessario distinguere tra il numero di linee possibili per l’inserimento e il numero di linee visualizzate. Nel caso il primo numero superi il secondo allora comparirà una barra a scorrimento verticale. Il numero di linee visualizzate è esprimibile tramite l’attributo rows, mentre value, similmente ad HTML, permette di specificare un testo di default da visualizzare nel campo testo.

Il numero massimo di testo possibile è invece specificato da maxlength mentre size ne specifica il numero di caratteri. Infine timeout, ultimo attributo dell’oggetto textbox permette la temporizzazione di eventi, ma ne parleremo in seguito.

Dopo aver specificato gli attributi parliamo dei tipi di textbox: XUL ne prevede quattro in base alle funzionalità che devono ricoprire, e oltre a quella base nei nostri progetti possiamo utilizzare autocomplete che prevede le funzionalità di auto completamento, password che non permette la visualizzazione del testo quando questo viene inserito dall’utente, e timed, che utilizzato in congiunzione con l’attributo timeout, aggiunge la possibilità di applicare un ritardo dopo che il testo viene inserito nella textbox.

Di solito in congiunzione con le textbox vengono utilizzate anche le etichette o label, le quali consistono appunto in semplici linee di testo esplicative:
  1. <label value= "Il mio testo"/>
La differenza con il tag description, visto nei capitoli precedenti che sicuramente ricorderete, è che una label può essere associata anche ad altri componenti tramite l’attributo control che specifica l’id del componente a cui associare l’etichetta stessa. Ad esempio, se una textbox ha un identificatore "tb" l’attributo control da assegnare alla label sarà specificato così:
  1. <label control="tb" value= "My text"/>
Facciamo un esempio ancora più completo. Se volessimo realizzare un campo di testo a riga singola, ma che permetta l’inserimento di più linee di testo scriveremmo:
  1. <?xml version='1.0'?>
  2. <window 
  3. 	id="hello"  
  4. 	title="textbox" 
  5. 	width="400" 
  6. 	height="300" 
  7. 	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" >
  8.  
  9. 	<box>
  10. 		<vbox>
  11. 			<label control="tb" value="Inserisci del testo qui:" />
  12. 			<textbox id="tb" rows="1" size="40" multiline="true"  value="empty"  />
  13. 		</vbox>
  14. 	</box>	
  15. 	<box>
  16. 		<button  label="Visualizza" oncommand="alert(document.getElementById('tb').value);"  />
  17. 	</box>	
  18. </window>
Ovviamente per gestire la visualizzazione abbiamo associato del codice JavaScript al gestore degli eventi, che controlla il bottone di visualizzazione. Come si può notare l’accesso del codice al contenuto dell’oggetto è ottenuto tramite il DOM e il metodo getElementByID nel più classico degli stili JavaScript. Il DOM diventa quindi fondamentale anche per XUL, come vedremo nei prossimi capitoli.

Infine per vedere la differenza tra i vari tipi di textbox provate a sostituire la definizione dell’elemento con:
  1. <textbox type="password" id="tb" rows="1"  />
A parte l’ovvia inutilità di visualizzare la password segreta potete osservare come l’utilità della box cambia radicalmente.
Precedente: The Definitive Guide to Terracotta - Cluster the JVM for Spring, Hibernate and POJO Scalability
Successiva: Un robot che risponde ai gesti
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.315 secondi.