Les trois règles de coordination des switchs
Module d’exemple : hellotypes, propriétés switchoneofmany/switchatmostone/switchany.
Plusieurs éléments ElementBool d’une même propriété peuvent être coordonnés entre eux comme des boutons radio ou des cases indépendantes, via "rule" dans le JSON de la propriété :
rule | Comportement |
|---|---|
0 — OneOfMany | Exactement un vrai à la fois (radio). Passer un élément à true remet tous les autres à false. Le repasser directement à false est refusé — il faut en choisir un autre. |
1 — AtMostOne | Zéro ou un vrai (radio optionnel). Même comportement, sauf qu’on peut aussi désélectionner directement. |
2 — Any (défaut) | Aucune contrainte, cases indépendantes. |
"switchoneofmany": {
"permission": 2,
"rule": 0,
"e": {
"calibrate": { "type": "bool", "directedit": true },
"guide": { "type": "bool", "directedit": true },
"stop": { "type": "bool", "directedit": true }
}
}Entièrement déclaratif : l’application réelle de la règle vit dans le framework lui-même, déclenchée par n’importe quelle écriture sur l’un des éléments — aucun code à écrire dans le module pour que ça fonctionne, seulement pour fixer un état initial cohérent si besoin.