Kästchenfelder

In einem Kästchen werden ein String als Wert und ein String als Text gespeichert. Der Wert ist entweder 'TRUE' oder 'FALSE' und der Text entweder 'true' oder 'false'.

Kästchen-Feld

Kästchen in minimiertem Block

Erstellung

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

Der Kästchenkonstruktor übernimmt einen optionalen Wert und einen optionalen validator. Der optionale Wert sollte entweder 'TRUE', 'FALSE' oder ein boolescher Wert sein. Andernfalls wird standardmäßig false verwendet.

Serialisierung

JSON

Der JSON-Code für ein Kästchenfeld sieht so aus:

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

Dabei ist FIELDNAME ein String, der auf ein Kästchenfeld verweist, und der Wert ist der Wert, der auf das Feld angewendet werden soll. Der Wert muss ein boolescher Wert sein.

XML

Der XML-Code für ein Kästchenfeld sieht so aus:

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

oder

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

Dabei enthält das Attribut name einen String, der auf ein Kästchenfeld verweist, und der innere Text ist der Wert, der auf das Feld angewendet werden soll. Der innere Textwert folgt denselben Regeln wie der Konstruktorwert.

Beachten Sie, dass nach der Deserialisierung und Reserialisierung alle inneren Textwerte in Großbuchstaben angezeigt werden ('TRUE' oder 'FALSE'). Dies ist manchmal beim Vergleichen von Arbeitsbereichen wichtig.

Anpassbare

Häkchen

Mit dem Attribut Blockly.FieldCheckbox.CHECK_CHAR kann die Darstellung des Häkchens geändert werden. Der Wert sollte ein String mit einem Unicode-Zeichen sein.

Kästchen mit Herz statt Häkchen

Die Standardeinstellung für die Property „CHECK_CHAR“ ist „\u2713“ oder „✓“.

Da dies eine globale Eigenschaft ist, werden alle Kästchenfelder geändert, wenn sie festgelegt ist.

Kästchenvalidierung erstellen

Der Wert eines Kästchenfelds ist entweder 'TRUE' oder 'FALSE', sodass eine Validierung diese Werte (d.h. einen String) akzeptieren und 'TRUE', 'FALSE', null oder undefined zurückgeben sollte.

Das folgende Beispiel zeigt eine Validierung, die ein Texteingabefeld abhängig davon ausblendet oder einblendet, je nachdem, ob das Kästchen angeklickt ist:

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

Kästchen mit einer Validierung