Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

I Formatter

I componenti per formattare efficacemente testi, date e numeri
I componenti per formattare efficacemente testi, date e numeri
Link copiato negli appunti

In questa lezione ci occuperemo di alcuni semplici strumenti di formattazione, messi a disposizione dal Flex Framework e utilizzabili con Flash Builder.

Dare un formato alle informazioni significa renderle più leggibili, più comprensibili e semplici da manipolare, basti pensare ad un numero molto grande che risulta di gran lunga più leggibile con i punti per separare le migliaia, oppure alla rappresentazione delle date, che può cambiare a seconda della lingua o del contesto culturale: una data in italiano è espressa nel formato GG/MM/AAAA, mentre per gli inglesi la stessa data è meglio comprensibile con il formato MM/GG/AA.

Esaminiamo i componenti che ci fornisce il Flex Framework a proposito:

Componente Dati da formattare
CurrencyFormatter Valute (euro, dollaro, etc.)
DateFormatter Date
NumberFormatter Numeri generici
PhoneFormatter Numeri di telefono
ZipCodeFormatter Codici postali (CAP)

Tutti questi oggetti derivano dalla classe Formatter, che può essere utilizzata come superclasse per costruire un formattatore custom.

Tutti i formattatori possono essere usati dichiarativamente in una pagina MXML o via codice in ActionScript e tutti espongono il metodo format() che prende in input un oggetto, tipicamente del tipo specificato dal nome, e ritorna una stringa formattatta secondo una specifica che viene impostata in modo diverso da formattatore a formattatore.

Come abbiamo visto per i validatori, anche i componenti per la formattazione agiscono a seconda della lingua impostata nella applicazione, per default l'Inglese. È comunque possibile impostare la lingua e la cultura italiana dalle impostazioni locali del compilatore, come abbiamo fatto nelle lezioni precedenti.

Le similitudini con i validatori non sono finite: anche i Formatter, che non sono controlli visuali, vanno inseriti nel tag <fx:Declaration>.

Infine possiamo personalizzare i messaggi, in caso di errori di formattazione, grazie alla proprietà error.

Ricapitolando, per utilizzare un formattatore occorre: dichiararlo (MXML o ActionScript), impostare i parametri di formattazione specifici, impostare la proprietà error, poi attivarlo invocarndo il metodo format(), cui si passa l'oggetto da formattare.

<fx:Declarations>
  <mx:DateFormatter formatString="EEEE DD MMMM YYYY" id="dateFormatter" />
  <mx:NumberFormatter id="numberFormatter" precision="4"
                      useThousandsSeparator="true" useNegativeSign="true"
                      decimalSeparatorFrom="." decimalSeparatorTo=","
                      thousandsSeparatorFrom="," thousandsSeparatorTo="." />
  <mx:PhoneFormatter formatString="(####) ######" id="phoneFormatter"/>
</fx:Declarations>

Collegare le proprietà ai dati

Volendo il metodo format è bindable ad una certa proprietà di un controllo. Vediamo questo esempio:

<mx:label id="lblData" text="{dateFormatter.format(dataField.selectedDate)}" />

Inotre possiamo specificare la proprietà al verificarsi di un evento:

<s:TextInput id="qnt" change="lblQnt.text=numberFormatter.format(qnt.text)" />

Ti consigliamo anche