Les Validateurs sont des composants natifs de Flex très utiles, ils permettent de valider des chaînes de caractères selon certains critères comme:
- La chaîne doit être un email
- La chaîne ne doit pas être vide
- La chaîne doit être une date, carte de crédit …
- La chaîne doit avoir une longueur entre 10 et 20 caractères…
Lorsque la chaîne de caractère (le plus souvent rentrée par l’utilisateur à l’aide du composant TextInput) ne respecte pas les régles imposées, le Validator s’occupe d’afficher un jolie ToolTip rouge sur le composant. Tout cela se passe donc très bien, le seul problème est que la gestion de l’affichage est laissée au TooltipManager et de ce fait relativement difficile à contrôler.
En fait l’erreur ne s’affiche seulement lorsque l’utilisateur a quitté le composant et revient dessus ! En fait ce sont les évènement VALID et INVALID qui gère l’affichage.
Chez eBuildy nous aimons la maitrîse
de ce fait nous avons chercher à tout prix à pouvoir choisir quand afficher l’erreur, comme la personnaliser …
Mieux qu’un long discourt, l’application suivante illustre nos propos en présentant 3 façons d’utiliser les Validator:
Nous avons remarqué que les Validator utilisent une fonction interne de ToolTipManager qui permet de setter la propriété ErrorString du composant TextInput (ou autre UIComponent) et ainsi afficher le ToolTip. Partant de cette information, nous allons tricher et simuler une action utilisateur en dispatchant l’évènement INVALID à sa place!
Typiquement, cela donne:
this.txt.errorString = this.myErrorString; this.txt.dispatchEvent(new FlexEvent(FlexEvent.INVALID));
Bien sur, comme souvent, il faut appeler ce bout de code en déféré avec un callLater ou setTimeout, pour plus d’information, voici le code complet de l’example (excepté le composant Validator Image):