Kolom kotak centang

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

Kolom kotak centang

Kolom kotak centang pada blok yang diciutkan

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 opsional validator. Nilai opsional harus 'TRUE', 'FALSE', atau boolean. Jika tidak, nilainya akan ditetapkan secara default ke false.

Serialisasi

JSON

JSON untuk kolom kotak centang akan terlihat seperti ini:

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

Dengan FIELDNAME adalah string yang mereferensikan kolom kotak centang, dan nilai adalah nilai yang akan diterapkan ke {i>field<i}. Nilai harus berupa boolean.

XML

XML untuk kolom kotak centang terlihat seperti ini:

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

atau

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

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

Perhatikan bahwa setelah dilakukan deserialisasi dan diserialisasi ulang semua teks dalam nilai akan ditulis dalam huruf kapital ('TRUE' atau 'FALSE'). Hal ini terkadang penting saat membedakan ruang kerja.

Penyesuaian

Karakter tanda centang

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

Kolom kotak centang dengan ikon hati, bukan tanda centang

Secara default, properti CHECK_CHAR disetel ke '\u2713' atau ✓.

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

Membuat validator kotak centang

Nilai kolom kotak centang adalah 'TRUE' atau 'FALSE' sehingga validator seharusnya 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:

  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