Confirm
Un ConfirmDialog est une boîte de dialogue modale conçue pour permettre à l'utilisateur de choisir l'une des trois options. La boîte de dialogue bloque l'exécution de l'application jusqu'à ce que l'utilisateur interagisse avec elle ou qu'elle se ferme en raison d'un délai d'attente.
Usages
Le ConfirmDialog fournit un moyen de demander aux utilisateurs une confirmation ou de choisir entre plusieurs options, telles que Oui/Non ou OK/Annuler, garantissant qu'ils reconnaissent et confirment leurs actions.
Afficher le code
- ConfirmDialogConstructorView.java
Types
Type d'option
Le ConfirmDialog prend en charge les types d'options suivants, qui déterminent les boutons affichés dans la boîte de dialogue :
OK: Affiche un boutonOK.OK_CANCEL: Affiche les boutonsOKetAnnuler.ABORT_RETRY_IGNORE: Affiche les boutonsAbandonner,RéessayeretIgnorer.YES_NO_CANCEL: Affiche les boutonsOui,NonetAnnuler.YES_NO: Affiche les boutonsOuietNon.RETRY_CANCEL: Affiche les boutonsRéessayeretAnnuler.CUSTOM: Affiche des boutons personnalis és selon les spécifications.
Type de message
Le ConfirmDialog prend en charge les types de messages suivants. Lorsque vous configurez un type, la boîte de dialogue affiche une icône à côté du message, et le thème de la boîte de dialogue se met à jour selon les règles du système de design webforJ.
PLAIN: Affiche le message sans icône, en utilisant le thème par défaut.ERROR: Affiche une icône d'erreur à côté du message avec le thème d'erreur appliqué.QUESTION: Affiche une icône de point d'interrogation à côté du message, utilisant le thème principal.WARNING: Affiche une icône d'avertissement à côté du message avec le thème d'avertissement appliqué.INFO: Affiche une icône d'information à côté du message, utilisant le thème d'information.
Dans l'exemple suivant, le code configure une boîte de dialogue de confirmation de type CUSTOM avec un titre et un message personnalisés.
Afficher le code
- ConfirmDialogOptionsView.java
Résultat
Le ConfirmDialog renvoie un résultat basé sur l'interaction de l'utilisateur avec la boîte de dialogue. Ce résultat indique quel bouton a été cliqué par l'utilisateur ou si la boîte de dialogue a été fermée en raison d'un délai d'attente.
Le résultat sera retourné par la méthode show(), ou la méthode équivalente OptionDialog comme indiqué ci-dessous.
L'énumération ConfirmDialog.Result inclut les résultats possibles suivants :
OK: L'utilisateur a cliqué sur le boutonOK.CANCEL: L'utilisateur a cliqué sur le boutonANNULER.YES: L'utilisateur a cliqué sur le boutonOUI.NO: L'utilisateur a cliqué sur le boutonNON.ABORT: L'utilisateur a cliqué sur le boutonABANDONNER.RETRY: L'utilisateur a cliqué sur le boutonRÉESSAYER.IGNORE: L'utilisateur a cliqué sur le boutonIGNORER.FIRST_CUSTOM_BUTTON: L'utilisateur a cliqué sur le premier bouton personnalisé.SECOND_CUSTOM_BUTTON: L'utilisateur a cliqué sur le deuxième bouton personnalisé.THIRD_CUSTOM_BUTTON: L'utilisateur a cliqué sur le troisième bouton personnalisé.TIMEOUT: La boîte de dialogue dépasse le délai.UNKNOWN: Un résultat inconnu, généralement utilisé comme état par défaut ou d'erreur.
if (result == ConfirmDialog.Result.FIRST_CUSTOM_BUTTON) {
OptionDialog.showMessageDialog("Modifications abandonnées", "Abandonné", "Compris");
} else {
OptionDialog.showMessageDialog(
"Modifications enregistrées", "Enregistré", "Compris", MessageDialog.MessageType.INFO);
}
Bouton par défaut
Le ConfirmDialog vous permet de spécifier un bouton par défaut qui est présélectionné lorsque la boîte de dialogue est affichée. Cela améliore l'expérience utilisateur en fournissant une action suggérée qui peut être rapidement confirmée en appuyant sur la touche Entrée.
ConfirmDialog dialog = new ConfirmDialog(
"Êtes-vous sûr ?", "Confirmer", ConfirmDialog.OptionType.YES_NO);
dialog.setDefaultButton(Button.SECOND); // deuxième bouton
dialog.show();
Texte des boutons
Vous pouvez configurer le texte des boutons en utilisant la méthode setButtonText(ConfirmDialog.Button button, String text).
ConfirmDialog dialog = new ConfirmDialog(
"Êtes-vous sûr ?", "Confirmer", ConfirmDialog.OptionType.CUSTOM);
dialog.setButtonText(ConfirmDialog.Button.FIRST, "Absolument");
dialog.setButtonText(ConfirmDialog.Button.SECOND, "Non");
dialog.show();
Traitement HTML
Par défaut, la boîte de dialogue de confirmation traite et rend le contenu HTML. Vous pouvez désactiver cette fonction en la configurant pour afficher du texte brut à la place.
ConfirmDialog dialog = new ConfirmDialog(
"<b>Êtes-vous sûr ?</b>", "Confirmer",
ConfirmDialog.OptionType.YES_NO, ConfirmDialog.MessageType.QUESTION);
dialog.setRawText(true);
dialog.show();
Délai d'attente
Le ConfirmDialog vous permet de définir une durée de délai après laquelle la boîte de dialogue se ferme automatiquement. Cette fonctionnalité est utile pour des confirmations ou des actions non critiques qui ne nécessitent pas l'interaction immédiate de l'utilisateur.
Vous pouvez configurer le délai pour la boîte de dialogue en utilisant la méthode setTimeout(int timeout). La durée du délai est en secondes. Si le temps spécifié s'écoule sans aucune interaction de l'utilisateur, la boîte de dialogue se ferme automatiquement.
ConfirmDialog dialog = new ConfirmDialog(
"Êtes-vous sûr ?", "Confirmer", ConfirmDialog.OptionType.YES_NO);
dialog.setDefaultButton(Button.SECOND);
dialog.setTimeout(3);
ConfirmDialog.Result result = dialog.show();
switch (result) {
case TIMEOUT:
OptionDialog.showMessageDialog(
"Vous avez mis trop de temps à décider", "Délai d'attente", "Compris",
MessageDialog.MessageType.WARNING);
break;
case YES:
OptionDialog.showMessageDialog(
"Vous avez cliqué sur Oui", "Oui", "Compris",
MessageDialog.MessageType.INFO);
break;
default:
OptionDialog.showMessageDialog(
"Vous avez cliqué sur Non", "Non", "Compris",
MessageDialog.MessageType.INFO);
break;
}
Meilleures pratiques
- Prompts clairs et concis : Assurez-vous que le message d'invite explique clairement quelle action l'utilisateur est invité à confirmer. Évitez l'ambiguïté.
- Types d'options appropriés : Choisissez des types d'options qui correspondent au contexte de l'action. Pour des décisions simples oui/non, utilisez des options simples. Pour des scénarios plus complexes, fournissez des boutons supplémentaires comme "Annuler" pour permettre aux utilisateurs de revenir sans faire de choix.
- Bouton par défaut logique : Définissez un bouton par défaut qui correspond à l'action la plus probable ou recommandée pour rationaliser le processus de décision.
- Thématisation cohérente : Alignez le thème de la boîte de dialogue et des boutons avec le design de votre application pour une expérience utilisateur cohérente.
- Utilisation judicieuse du délai d'attente : Définissez des délais d'attente pour les confirmations non critiques, en veillant à ce que les utilisateurs aient suffisamment de temps pour lire et comprendre l'invite.
- Minimiser l'utilisation excessive : Utilisez les boîtes de dialogue de confirmation avec parcimonie pour éviter la frustration des utilisateurs. Réservez-les pour des actions critiques nécessitant une confirmation explicite de l'utilisateur.