Au chargement de l’application, la méthode
initApp()
est appelée dans les applications Flex ou le code du scénario (autre qu’une fonction) est exécuté dans les applications Flash Professional. Ce code définit un exemple de paquet XML que la classe Validator vérifiera. Le code suivant est exécuté :
employeeXML =
<employee id="12345">
<firstName>John</firstName>
<lastName>Doe</lastName>
<costCenter>12345</costCenter>
<costCenter>67890</costCenter>
</employee>;
}
Le paquet XML est ensuite affiché dans une occurrence du composant TextArea sur la scène. Cette étape permet de modifier le paquet XML avant de tenter de le revalider.
Lorsque l’utilisateur clique sur le bouton de validation, la méthode
validateData()
est appelée. Cette méthode valide le paquet XML employee à l’aide de la méthode
validateEmployeeXML()
de la classe Validator. Le code suivant présente la méthode
validateData()
:
function validateData():void
{
try
{
var tempXML:XML = XML(xmlText.text);
Validator.validateEmployeeXML(tempXML);
status.text = "The XML was successfully validated.";
}
catch (error:FatalError)
{
showFatalError(error);
}
catch (error:WarningError)
{
showWarningError(error);
}
catch (error:Error)
{
showGenericError(error);
}
}
Un objet XML temporaire est d’abord créé à l’aide du contenu de l’occurrence du composant TextArea
xmlText
. La méthode
validateEmployeeXML()
de la classe Validator personnalisée (com.example.programmingas3/errors/Validator.as) est ensuite appelée et transmet l’objet XML temporaire comme paramètre. Si le paquet XML est valide, l’occurrence du composant Label
status
affiche un message de réussite et l’application se ferme. Si la méthode
validateEmployeeXML()
renvoie une erreur personnalisée (c’est-à-dire qu’une erreur FatalError, WarningError ou une erreur générique se produit), l’instruction
catch
appropriée s’exécute et appelle les méthodes
showFatalError()
,
showWarningError()
ou
showGenericError()
. Chacune de ces méthodes affiche un message approprié dans une zone de texte appelée
statusTex
t pour avertir l’utilisateur de l’erreur spécifique qui s’est produite. Chaque méthode met également à jour l’occurrence du composant Label
status
avec un message spécifique.
Si une erreur grave se produit pendant une tentative de validation du paquet XML employee, le message d’erreur s’affiche dans la zone de texte
statusText
et l’occurrence du composant TextArea
xmlText
et l’occurrence du composant Button
validateBtn
sont désactivées, comme l’indique le code suivant :
function showFatalError(error:FatalError):void
{
var message:String = error.message + "\n\n";
var title:String = error.getTitle();
statusText.text = message + " " + title + "\n\nThis application has ended.";
this.xmlText.enabled = false;
this.validateBtn.enabled = false;
hideButtons();
}
S’il se produit une erreur d’avertissement au lieu d’une erreur grave, le message d’erreur est affiché dans l’occurrence de TextArea
statusText
, mais les occurrences de composant TextField
xmlText
et Button ne sont pas désactivées. La méthode
showWarningError()
affiche le message d’erreur personnalisé dans la zone de texte
statusText
. Le message invite également l’utilisateur à indiquer s’il souhaite poursuivre la validation de l’objet XML ou annuler le script. Le fragment de code suivant présente la méthode
showWarningError()
:
function showWarningError(error:WarningError):void
{
var message:String = error.message + "\n\n" + "Do you want to exit this application?";
showButtons();
var title:String = error.getTitle();
statusText.text = message;
}
Lorsque l’utilisateur clique sur le bouton Oui ou Non, la méthode
closeHandler()
est appelée. Le fragment de code suivant présente la méthode
closeHandler()
:
function closeHandler(event:CloseEvent):void
{
switch (event.detail)
{
case yesButton:
showFatalError(new FatalError(9999));
break;
case noButton:
statusText.text = "";
hideButtons();
break;
}
}
Si l’utilisateur souhaite annuler le script en cliquant sur Oui, une exception FatalError est renvoyée, provoquant l’arrêt de l’application.