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