Memperluas kolom yang ada

Untuk memperluas kolom yang ada, Anda harus membuat subclass untuk kolom bawaan (misalnya FieldTextInput, FieldColour), lalu mengubah sebagian kolom tersebut sesuai dengan kebutuhan Anda. Beberapa bagian kolom yang dapat Anda ubah adalah:

Jika ingin membuat kolom kustom yang tidak memerlukan perilaku dari kolom bawaan apa pun, Anda harus membuat subclass Field.

Ekstensi umum

Sebagian besar kolom kustom memperluas salah satu dari tiga jenis berikut:

  • Input Teks: Jika ingin pengguna mengetik ke dalam kolom, Anda harus memperluas FieldTextInput.
  • Nomor: Jika ingin menyimpan angka, Anda harus memperluas FieldNumber.
  • Dropdown: Jika ingin membuat dropdown, tetapi ingin menyimpan model yang berbeda dengan string atau model gambar default, Anda harus memperluas FieldDropdown.
    • Perhatian: Sebelum memperluas FieldDropdown, pastikan opsi penyesuaian kolom drop-down tidak dapat memenuhi kebutuhan Anda.

Dalam keadaan tertentu, Anda mungkin ingin memperluas jenis kolom yang berbeda. Misalnya, 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 umumnya harus cocok dengan tanda tangan konstruktor super.

JSON dan pendaftaran

Anda juga harus mendaftarkan kolom ini sekali:

Blockly.fieldRegistry.register('my_custom_text_field', MyCustomTextField);

dan menyediakan implementasi fromJson di class tersebut agar berfungsi dengan format JSON:

static fromJson(options) {
  const value = Blockly.utils.parsing.replaceMessageReferences(options.value);
  return new MySubclassName(value);
}

Untuk mengetahui informasi selengkapnya tentang pendaftaran kolom, lihat bagian JSON dan pendaftaran di Membuat Kolom Kustom.