Memperluas kolom yang ada

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:

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.

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.