Champs de cases à cocher

Un champ de type case à cocher stocke une chaîne en tant que valeur et une chaîne en tant que texte. Sa valeur est 'TRUE' ou 'FALSE', et son texte est 'true' ou 'false'.

Champ de case à cocher

Champ de case à cocher sur le 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 case à cocher accepte une valeur et un validator facultatifs. La valeur facultative doit être 'TRUE', 'FALSE' ou une valeur booléenne. Sinon, elle est définie par défaut sur false.

sérialisation

JSON

Le code JSON d'un champ de case à cocher se présente comme suit:

{
  "fields": {
    "FIELDNAME": true
  }
}

FIELDNAME est une chaîne faisant référence à un champ de case à cocher, et la valeur est la valeur à appliquer au champ. La valeur doit être une valeur booléenne.

XML

Le code XML d'un champ à cases à 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 de texte interne suit les mêmes règles que la valeur du constructeur.

Notez qu'après avoir été désérialisée et resérialisée, toutes les valeurs de texte internes sont en majuscules ('TRUE' ou 'FALSE'). Cela est parfois important lorsque vous comparez les différents espaces de travail.

Fonctionnalités

Coche

La propriété Blockly.FieldCheckbox.CHECK_CHAR peut être utilisée pour modifier l'apparence de la coche. La valeur doit être une chaîne contenant un caractère Unicode.

Champ de case à cocher avec un cœur à la place de la coche

La propriété CHECK_CHAR est définie par défaut sur "\u2713" ou ✓.

Comme il s'agit d'une propriété globale, tous les champs de la case à cocher seront modifiés lorsqu'ils seront définis.

Créer un outil de validation de cases à 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 programme de validation qui masque ou affiche un champ de saisie de texte selon que la case 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');
    }
  }

Champ de case à cocher avec un programme de validation