Un champ de case à cocher stocke une chaîne comme valeur et une chaîne comme texte. Sa valeur est 'TRUE'
ou 'FALSE'
, et son texte est 'true'
ou 'false'
.
Champ de case à cocher
Champ de case à cocher dans un bloc réduit
Création
JSON
{
"type": "example_checkbox",
"message0": "checkbox: %1",
"args0": [
{
"type": "field_checkbox",
"name": "FIELDNAME",
"checked": true
}
]
}
JavaScript
Blockly.Blocks['example_checkbox'] = {
init: function() {
this.appendDummyInput()
.appendField('checkbox:')
.appendField(new Blockly.FieldCheckbox(true), 'FIELDNAME');
}
};
Le constructeur de la case à cocher accepte une valeur facultative et un validateur facultatif. La valeur facultative doit être 'TRUE'
, 'FALSE'
ou une valeur booléenne. Sinon, la valeur par défaut sera false
.
Sérialisation
JSON
Le code JSON d'un champ de case à cocher se présente comme suit :
{
"fields": {
"FIELDNAME": true
}
}
Où FIELDNAME
est une chaîne faisant référence à un champ de case à cocher et où la valeur est celle à appliquer au champ. La valeur doit être une valeur booléenne.
XML
Le code XML d'un champ de case à cocher se présente comme suit :
<field name="FIELDNAME">TRUE</field>
ou
<field name="FIELDNAME">true</field>
Où l'attribut name
contient une chaîne faisant référence à un champ de case à cocher, et le texte intérieur est la valeur à appliquer au champ. La valeur du texte interne suit les mêmes règles que la valeur du constructeur.
Notez qu'après avoir été désérialisées et resérialisées, toutes les valeurs de texte interne seront en majuscules ('TRUE'
ou 'FALSE'
). Cela est parfois important lors de la comparaison des espaces de travail.
Personnalisation
Caractère Coche
La propriété Blockly.FieldCheckbox.CHECK_CHAR
permet de modifier l'apparence de la coche. La valeur doit être une chaîne contenant un caractère Unicode.
La propriété CHECK_CHAR
est définie par défaut sur \u2713
ou ✓.
Il s'agit d'une propriété globale. Par conséquent, elle modifiera tous les champs de cases à cocher lorsqu'elle sera définie.
Créer un validateur de case à cocher
La valeur d'un champ de case à cocher est 'TRUE'
ou 'FALSE'
. Un programme de validation doit donc accepter ces valeurs (c'est-à-dire une chaîne) et renvoyer 'TRUE'
, 'FALSE'
, null
ou undefined
.
Voici un exemple de validateur qui masque ou affiche un champ de saisie de texte selon que la case à cocher est cochée ou non :
validate: function(newValue) {
var sourceBlock = this.getSourceBlock();
sourceBlock.showTextField_ = newValue == 'TRUE';
sourceBlock.updateTextField();
return newValue;
},
updateTextField: function() {
var input = this.getInput('DUMMY');
if (this.showTextField_ && !this.getField('TEXT')) {
input.appendField(new Blockly.FieldTextInput(), 'TEXT');
} else if (!this.showTextField_ && this.getField('TEXT')) {
input.removeField('TEXT');
}
}