Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

18mai/080

Flex Formatter: Coder ses propres formateurs en ActionScript

Si l'un des Formatter standard ne convient pas à votre besoin, vous pouvez écrire votre propre Formatter. Pour écrire un Formatter personalisé, vous devez créer une classe ActionScript qui extends mx.formatters.Formatter. Cette classe doit surcharger la méthode format().

L'exemple suivant créer un nouveau Formatter qui va ajouter des 0 pour que la chaîne soit de la longueur de la propriété "count" du Formatter:

package
{
	import mx.formatters.Formatter;

	public class ZeroFillFormatter extends Formatter {
		private var _count:int;

		public function set count(value:int):void{
			_count = value;
		}
		public function get count():int{
			return _count;
		}

		public function ZeroFillFormatter(){
			super();
			_count = -1;
		}
		// méthode format() à surcharger
		override public function format(value:Object):String{
			// si nécéssaire, on convertit le paramètre en une String, sinon on le cast en String
			var stringValue:String;
			if(!(value is String)){
				stringValue = value.toString();
			} else {
				stringValue = String(value);
			}

			// si la longueur de la chaîne est inférieure à _count,
			// on la précède par des zéros
			while (_count > stringValue.length){
				stringValue = "0" + stringValue;
			}
			return stringValue;
		}
	}
}

Et la partie MXML pour utiliser le Formatter que l'on vient de créer:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
	xmlns:formatter="*">
	<mx:TextInput text="{zeroFillFormatter.format(123456789)}"/>
	<formatter:ZeroFillFormatter id="zeroFillFormatter" count="15"/> 

</mx:Application>

Flex Source Code Download: Télécharger le code source complet de l'application

This movie requires Flash Player 11

Articles similaires

Commentaires (0) Trackbacks (0)

Aucun commentaire pour l'instant


Leave a comment

(required)

Aucun trackbacks pour l'instant