Kolom kotak centang

Kolom kotak centang menyimpan string sebagai nilainya, dan string sebagai teksnya. Nilainya adalah 'TRUE' atau 'FALSE', dan teksnya adalah 'true' atau 'false'.

Kolom kotak centang

![Blok dengan label "checkbox:" dan kolom kotak centang dengan tanda centang.

Kolom kotak centang pada blok yang diciutkan

Blok yang sama setelah diciutkan. Elemen ini memiliki label "variable: true" dan
tepi kanan yang tidak rata untuk menunjukkan bahwa elemen tersebut
ditutup.

yang Dipicu oleh Tren

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

Konstruktor kotak centang mengambil nilai opsional dan validator opsional. Nilai opsional harus berupa 'TRUE', 'FALSE', atau boolean. Jika tidak, nilai defaultnya adalah false.

Serialisasi

JSON

JSON untuk kolom kotak centang terlihat seperti ini:

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

Dengan FIELDNAME adalah string yang mereferensikan kolom kotak centang, dan nilai adalah nilai yang akan diterapkan ke kolom. Nilai harus berupa boolean.

XML

XML untuk kolom kotak centang terlihat seperti ini:

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

atau

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

Dengan atribut name berisi string yang mereferensikan kolom kotak centang, dan teks dalam adalah nilai yang akan diterapkan ke kolom. Nilai teks dalam mengikuti aturan yang sama dengan nilai konstruktor.

Perhatikan bahwa setelah dideserialisasi dan diserialisasi ulang, semua nilai teks dalam akan menggunakan huruf besar ('TRUE' atau 'FALSE'). Hal ini terkadang penting saat melakukan diff pada ruang kerja.

Penyesuaian

Karakter tanda centang

Properti Blockly.FieldCheckbox.CHECK_CHAR dapat digunakan untuk mengubah tampilan tanda centang. Nilai harus berupa string yang berisi karakter unicode.

Kolom kotak centang dengan hati, bukan centang

Properti CHECK_CHAR ditetapkan secara default ke '\u2713' atau ✓.

Ini adalah properti global, sehingga akan mengubah semua kolom kotak centang saat ditetapkan.

Membuat validator kotak centang

Nilai kolom kotak centang adalah 'TRUE' atau 'FALSE' sehingga validator harus menerima nilai tersebut (yaitu string) dan menampilkan 'TRUE', 'FALSE', null, atau undefined.

Berikut adalah contoh validator yang menyembunyikan atau menampilkan kolom input teks berdasarkan apakah kotak centang dicentang atau tidak:

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

Kolom kotak centang dengan validator

GIF animasi yang menampilkan kotak centang yang dicentang. Jika kotak centang
dicentang, kolom teks
akan ditampilkan.