Aangezien de ingebouwde Flex validatie niet bepaald gebruiksvriendelijk is, heb ik zelf enkele verbeteringen proberen aan te brengen, voortbouwend op de informatie die Aral Balkan (1) en Kyle Quevillon (2) op hun website hebben geplaatst.
Het grote probleem bij de ingebouwde Flex validatie, bevindt zich bij het tonen van foutmeldingen op een formulier. Tekstvelden worden gemarkeerd, maar om de foutmelding te zien moet de gebruiker de cursor boven het betreffende veld plaatsen. Het zou meer gebruiksvriendelijk zijn om deze meldingen permanent op het formulier te zetten.
Om dit probleem op te lossen heb ik de methode uit (1) als basis gebruikt. Via een aparte klasse worden de velden die validatie vereisen ingesteld. Per veld kan een type (b.v. “verplicht”) gespecificeerd worden. Bij het aanpassen van een veld, controleert de validator of de inhoud klopt. Is dit niet het geval, dan wordt via de Flex ToolTipManager een label met een foutmelding op het formulier geplaatst. Daarnaast wordt, net zoals bij de ingebouwde Flex validatie, de opmaak van het veld aangepast met een rode rand. De foutmelding blijft zichtbaar, ook wanneer de gebruiker een ander veld invult.
Er zijn echter twee grote problemen verbonden met deze oplossingsmethode. Het eerste probleem is dat de labels niet verdwijnen wanneer de gebruiker naar een andere pagina navigeert en bovenop de nieuwe pagina geplaatst worden. Daarom is het beheer van de validator verplaatst van het formulier naar de applicatie. Aangezien navigatie via het PureMVC framework geregeld wordt, kan hier nu bij het veranderen van pagina een bepaalde methode opgeroepen worden die alle meldingen verwijdert. Ook de opmaak van de velden wordt op dat moment terug aangepast.
Een tweede probleem is de positie van de foutmeldingen tijdens het scrollen door de pagina. Aangezien elke boodschap een vaste positie op het scherm heeft, wordt deze niet aangepast wanneer de gebruiker door de pagina scrollt. Daarom is er een extra methode, gebaseerd op (2), aan de validator toegevoegd die detecteert wanneer de gebruiker scrollt en tegelijkertijd de positie van elke foutmelding aanpast. Er is wel nog een verschil tussen het verschuiven van de scrollbalk in de browser of het scrollen via de muis. Bij dit laatste moet er een correctiefactor in rekening gebracht worden om de verticale positie van de labels te berekenen.