BERKIOSDocs
Studio

Leçon 9 — Messages typés et fenêtres de dialogue (v0.7.116)

La commande message reste valable telle quelle : message "Bonjour" affiche un bandeau d'information. Depuis la v0.7.116, on peut préciser le type du message avec message.type, l'afficher dans une fenêtre de dialogue (modal) et réagir à la réponse.

quand clic
  message.modal "Bienvenue"

Les types

CommandeAliasAffichage par défautRôle
message.info "texte"information, infosbandeauInformation.
message.succes "texte"succès, reussite, ok, successbandeau vertOpération réussie.
message.avertir "texte"avertissement, attention, alerte, warningbandeau orangeAvertissement.
message.erreur "texte"echec, échec, errorbandeau rougeErreur.
message.modal "texte"modale, dialogue, dialog, fenetrefenêtreInformation dans une fenêtre. Le script attend sa fermeture.
message.confirmer "question"confirmation, confirm, questionfenêtre Oui / NonPose une question : $reponse vaut oui ou non.
message.demander "question"saisir, saisie, ask, promptfenêtre avec un champDemande un texte : $reponse reçoit la saisie (vide si annulé).

Un type inconnu est signalé à l'analyse : Type de message inconnu « message.joyeux » (info, succes, avertir, erreur, modal, confirmer, demander).

Options (dans n'importe quel ordre, après le texte)

OptionEffet
modal (dialogue, popup)Affiche le message dans une fenêtre, même pour info, succes, avertir, erreur.
bandeau (toast, notification)Force le bandeau (impossible pour confirmer et demander).
titre "Titre"Titre de la fenêtre (par défaut : Information, Succès, Avertissement, Erreur, Confirmation, Saisie).
bouton "Compris" / boutons "Oui" "Non"Libellés des boutons (un seul bouton pour un message simple).
dangerBouton principal rouge (suppression, action irréversible).
"$cible" ou dans "$cible"confirmer / demander : écrit aussi la réponse dans cette cible, en plus de $reponse.
alors commande …Commande exécutée si la réponse est Oui (ou la saisie validée) ; pour un message simple, après sa fermeture.
sinon commande …Commande exécutée si la réponse est Non (ou la saisie annulée). Seulement avec confirmer et demander.

Le texte accepte {Composant} et {$variable} comme set ou message.

Conditions

Deux façons de réagir à une réponse, au choix du plus lisible :

quand clic
  # 1. Branches alors / sinon sur la même ligne
  message.confirmer "Supprimer ce client ?" danger boutons "Supprimer" "Garder" alors effacer "Nom" sinon message.info "Annulé"

  # 2. La réponse est toujours dans $reponse : on peut tester avec « si »
  message.confirmer "Continuer ?"
  si "$reponse" = oui alors message.succes "C'est parti"

oui / non se comparent aussi avec true / false / vrai / faux : si "$reponse" = true … fonctionne. Un message peut aussi se trouver derrière un si :

quand clic
  si "Stock" < 5 alors message.avertir "Stock bas : {Stock}" modal titre "Magasin"

Forme avec parenthèses (facultative)

message.confirmer("Supprimer ?", "$ok") équivaut à message.confirmer "Supprimer ?" "$ok".

Limites

  • Après alors, une seule commande ; une commande de contrôle (si, sauf-si, repeter) y est refusée. Pour enchaîner plusieurs actions, appelez une fonction (alors effacer-nom, voir la v0.7.115).
  • La commande après alors ne peut pas contenir elle-même sinon.
  • Dans l'application Flutter générée, les fenêtres s'ouvrent avec showDialog (Material) ; message.modal ouvert pendant quand chargement s'affiche au premier affichage de l'interface.

Exemple complet : examples/code-composants/14-messages-types.berkios.json.

Le même principe dans le langage .bk (v0.7.123)

Dans un fichier .bk, l'action d'un bouton afficher le message accepte les mêmes types, la fenêtre modale et des lignes oui : / non : :

bouton supprimer "Supprimer"
  quand on clique : afficher le message confirmation "Supprimer ce client ?" titre "Suppression" boutons "Supprimer" "Garder" danger
    oui : afficher le message succès "Client supprimé"
    non : afficher le message "Suppression annulée"

bouton bienvenue "Bienvenue"
  quand on clique : afficher le message modal "Bienvenue dans BERKIOS !" titre "Bienvenue"

bouton demander "Mon nom"
  quand on clique : afficher le message saisie "Quel est votre nom ?" dans nom
ÉlémentFrançaisEnglishEspañolKiswahili
Typesinformation, succès, avertissement, erreur, confirmation, saisieinfo, success, warning, error, confirmation, inputinformación, éxito, advertencia, error, confirmación, entradataarifa, mafanikio, onyo, hitilafu, uthibitisho, ingizo
Affichagemodal, bandeaumodal, bannermodal, bannerdirisha, arifa
Optionstitre "…", boutons "OK" "Non", danger, dans composanttitle, buttons, danger, intotítulo, botones, peligro, haciakichwa, vitufe, hatari, ndani ya
Réponsesoui : / non :yes : / no :sí : / no :ndiyo : / hapana :
  • afficher le message "texte" (sans type) reste un bandeau d'information.
  • confirmation et saisie s'ouvrent toujours dans une fenêtre ; oui / non n'existent que sous elles. Une saisie écrit son texte dans le composant indiqué après dans.
  • Une ligne oui : / non : contient une seule action (ouvrir, fermer, montrer, message simple…). Une nouvelle confirmation ou saisie y est refusée.
  • berkios traduire convertit ces lignes dans les quatre langues. Exemples : compiler/examples/messages.fr.bk et messages.en.bk.
  • Dans le projet produit, le bouton reçoit buttonAction avec messageKind, messageDisplay, messageTitle, okLabel, cancelLabel, danger, responseTargetWidgetId, onYes, onNo.