Campi della casella di controllo

Un campo di una casella di controllo memorizza una stringa come valore e una stringa come testo. È è 'TRUE' o 'FALSE' e il relativo testo è 'true' o 'false'.

Campo della casella di controllo

Campo della casella di controllo sul blocco compresso

Creazione

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');
  }
};

Il costruttore della casella di controllo inserisce un valore facoltativo e un valore facoltativo strumento di convalida. Il valore facoltativo deve essere 'TRUE', 'FALSE' o un valore booleano, altrimenti il valore predefinito sarà false.

Serializzazione

JSON

Il codice JSON per il campo di una casella di controllo è simile al seguente:

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

dove FIELDNAME è una stringa che fa riferimento a un campo di una casella di controllo e il valore è il valore da applicare al campo. Il valore deve essere un valore booleano.

XML

Il codice XML per il campo di una casella di controllo è simile al seguente:

<field name="FIELDNAME">TRUE</field>

o

<field name="FIELDNAME">true</field>

In cui l'attributo name contiene una stringa che fa riferimento a un campo di casella di controllo, e il testo interno è il valore da applicare al campo. Il valore del testo interno segue le stesse regole del valore del costruttore.

Nota che dopo aver deserializzato e risottoposto a rieseguire, tutto il testo interno i valori saranno in maiuscolo ('TRUE' o 'FALSE'). A volte questo è importante quando si differenziano le aree di lavoro.

Personalizzazione

Carattere segno di spunta

La proprietà Blockly.FieldCheckbox.CHECK_CHAR può essere utilizzata per modificare segno di spunta. Il valore deve essere una stringa contenente un unicode .

Campo della casella di controllo con un cuore anziché un segno di spunta

Il valore predefinito della proprietà CHECK_CHAR è "\u2713" oppure ✓.

Questa è una proprietà globale, quindi modificherà tutti i campi delle caselle di controllo, se impostata.

Creazione di uno strumento di convalida delle caselle di controllo

Il valore di un campo di casella di controllo è 'TRUE' o 'FALSE', quindi uno strumento di convalida dovrebbe accettare questi valori (una stringa) e restituire 'TRUE', 'FALSE', null o undefined.

Ecco un esempio di strumento di convalida che nasconde o mostra un campo di immissione di testo basato su se la casella di controllo è selezionata:

  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');
    }
  }

Campo della casella di controllo con uno strumento di convalida