Untuk memperluas kolom yang ada, Anda harus membuat subclass kolom bawaan (mis.
FieldTextInput, FieldColour) lalu ubah bagiannya agar sesuai dengan kebutuhan Anda.
Beberapa bagian kolom yang dapat Anda ubah adalah:
- Ini editor.
- Ini tampilan di blok.
- Tujuan teks yang ditampilkan.
Jika Anda ingin membuat
kolom kustom
yang tidak memerlukan perilaku dari kolom bawaan apa pun, Anda harus membuat subclass Field.
Ekstensi umum
Sebagian besar kolom kustom menyediakan salah satu dari tiga jenis berikut:
- Input Teks: Jika Anda ingin pengguna mengetik dalam kolom, Anda harus memperluas
FieldTextInput. - Angka: Jika ingin menyimpan angka, Anda harus memperluas
FieldNumber. - Dropdown: Jika Anda ingin membuat dropdown, tetapi Anda ingin menyimpan model yang berbeda
daripada string default atau model gambar, Anda harus memperluas
FieldDropdown.- Perhatian: Sebelum memperluas
FieldDropdown, periksa apakah kolom opsi penyesuaian tidak dapat memenuhi kebutuhan Anda.
- Perhatian: Sebelum memperluas
Dalam keadaan tertentu, Anda mungkin ingin memperluas jenis kolom yang berbeda. Sebagai
contoh FieldLabelSerializable memperluas FieldLabel.
Subclassing
import * as Blockly from 'blockly';
export class MyCustomTextField extends Blockly.FieldTextInput {
constructor(value, validator, config) {
super(value, validator, config);
}
}
Konstruktor untuk subclass kolom terlihat sangat mirip dengan konstruktor untuk kolom kustom. Tanda tangan sub-konstruktor harus umumnya cocok dengan tanda tangan super-konstruktor.
JSON dan pendaftaran
Anda juga harus mendaftarkan kolom satu kali:
Blockly.fieldRegistry.register('my_custom_text_field', MyCustomTextField);
dan menyediakan implementasi fromJson di class agar berfungsi dengan
format JSON:
static fromJson(options) {
const value = Blockly.utils.parsing.replaceMessageReferences(options.value);
return new MyCustomTextField(value);
}
Untuk informasi selengkapnya tentang mendaftarkan kolom, lihat JSON dan pendaftaran di Membuat Kolom Kustom.