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 MySubclassName(value);
}
Untuk informasi selengkapnya tentang mendaftarkan kolom, lihat JSON dan pendaftaran di Membuat Kolom Kustom.