Dans GXT, les méthodes MessageBox
sont asynchrones, ce qui signifie que l'application ne se verrouille pas pendant l'affichage de la boîte de message. J'utilise un KeyListener
pour traiter les touches d'entrée sous une forme (pour augmenter la convivialité, c'est-à-dire permettre au formulaire d'être envoyé par la touche Entrée) et désactiver ensuite les champs de formulaire pendant que l'application traite les informations d'identification de l'utilisateur. Si elles sont incorrectes, je montre un MessageBox.alert()
puis réactiver les champs de formulaire. Cependant, puisque alert()
revient immédiatement, les champs de formulaire sont immédiatement rendus disponibles à nouveau, ce qui permet à l'utilisateur d'entrer des données sans fermer l'alerte.GXT KeyListener.componentKeyDown() se ferme immédiatement MessageBox.alert()
La solution consiste à utiliser un rappel dans alert()
; Toutefois, la touche de validation entrée entraîne non seulement l'envoi du formulaire, mais entraîne également l'annulation immédiate de l'alerte (comme si le formulaire et la zone de message traitaient la clé d'entrée). Comment garder la boîte d'alerte ouverte jusqu'à ce que l'utilisateur appuie une deuxième fois ou clique sur le bouton "OK"?