blockly > Kolom

Class kolom

Class abstrak untuk kolom yang dapat diedit.

Tanda Tangan:

export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable 

Implementasi: IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable

Konstruktor

Konstruktor Pengubah Deskripsi
(konstruktor)(nilai, validator, konfigurasi) Membuat instance baru dari class Field

Properti

Properti Pengubah Jenis Deskripsi
borderRect_ protected SVGRectElement | null Elemen batas SVG kolom yang dirender.
clickTarget_ protected Elemen | null Elemen yang terikat pada pengendali klik.
constants_ protected ConstantProvider | null Konstanta yang terkait dengan perender blok sumber.
KURSOR string Gaya kursor mouse saat berada di atas hotspot yang memulai editor.
DEFAULT_VALUE T | null

Untuk menimpa nilai default yang ditetapkan di **Kolom**, langsung update prototipe.

Contoh: FieldImage.prototype.DEFAULT_VALUE = null;

DAPAT DIEDIT boolean Kolom yang dapat diedit biasanya menampilkan semacam UI yang menunjukkan bahwa kolom tersebut dapat diedit. Nama tersebut juga akan disimpan oleh penserialisasi.
enabled_ protected boolean Dapatkah nilai kolom diubah menggunakan editor pada blok yang dapat diedit?
fieldGroup_ protected SVGGElement | null Elemen grup SVG kolom yang dirender.
isDirty_ protected boolean Apakah blok ini perlu dirender ulang?
maxDisplayLength angka Karakter teks maksimum yang akan ditampilkan sebelum menambahkan elipsis.
nama? string (Opsional) Nama kolom. Unik di setiap blok. Label statis biasanya tidak bernama.
NBSP

static

readonly

(tidak dideklarasikan) Spasi tanpa jeda.
DAPAT DISERIALISASI boolean Kolom yang dapat diserialisasi disimpan oleh serialisasi, sedangkan kolom yang tidak dapat diserialisasi tidak. Kolom yang dapat diedit juga harus dapat diserialisasi. Hal ini tidak terjadi secara default sehingga SERIALIZABLE kompatibel dengan versi sebelumnya.
size_ protected Ukuran
SKIP_SETUP

static

readonly

simbol unik Nilai yang digunakan untuk memberi sinyal saat konstruktor kolom *tidak* menetapkan nilai kolom atau menjalankan Configure_, dan harus mengizinkan subclass melakukannya.
sourceBlock_ protected Blokir | null Blok tempat kolom ini dilampirkan. Dimulai sebagai null, lalu ditetapkan di init.
textContent_ protected Teks | null Elemen konten teks kolom yang dirender.
textElement_ protected SVGTextElement | null Elemen teks SVG kolom yang dirender.
validator_ protected FieldValidator<T> | null Fungsi validasi dipanggil saat pengguna mengedit kolom yang dapat diedit.
value_ protected T | null
visible_ protected boolean Apakah kolom terlihat, atau disembunyikan karena blok diciutkan?

Metode

Metode Pengubah Deskripsi
applyColour()

Memperbarui kolom agar sesuai dengan warna/gaya blok.

Sub-class non-abstrak mungkin ingin menerapkan ini jika warna kolom bergantung pada warna blok. Metode ini akan otomatis dipanggil pada waktu yang relevan, seperti saat blok induk atau perender berubah.

Lihat dokumentasi kolom untuk informasi selengkapnya, atau FieldDropdown untuk contoh.

bindEvents_() protected Mengikat peristiwa ke kolom. Dapat diganti oleh subclass jika perlu melakukan penanganan input kustom.
configure_(config) protected Proses peta konfigurasi yang diteruskan ke kolom.
createBorderRect_() protected Membuat elemen persegi panjang batas kolom. Tidak boleh diganti oleh subclass. Sebagai gantinya, ubah hasil fungsi di dalam initView, atau buat fungsi terpisah yang akan dipanggil.
createTextElement_() protected Buat elemen teks kolom. Tidak boleh diganti oleh subclass. Sebagai gantinya, ubah hasil fungsi di dalam initView, atau buat fungsi terpisah yang akan dipanggil.
doClassValidation_(newValue) protected

Validasi perubahan pada nilai kolom sebelum ditetapkan. Lihat **FieldDropdown** untuk contoh implementasi subclass.

**CATATAN:** Validasi menampilkan satu opsi antara T, null, dan undefined. Implementasi **Field** tidak akan pernah menampilkan undefined, tetapi valid bagi subclass untuk menampilkan undefined jika nilai baru kompatibel dengan T.

doClassValidation_(newValue) protected
doValueInvalid_(_invalidValue) protected Digunakan untuk memberi tahu kolom bahwa nilai yang dimasukkan tidak valid. Dapat diganti oleh subclass, lihat FieldTextInput. Tanpa pengoperasian secara default.
doValueUpdate_(newValue) protected Digunakan untuk memperbarui nilai kolom. Dapat diganti oleh subclass untuk melakukan penyimpanan nilai khusus/memperbarui hal-hal eksternal.
getAbsoluteXY_() protected Menampilkan koordinat absolut sudut kiri atas kolom ini. Asal (0,0) adalah sudut kiri atas isi halaman.
getBorderRect() protected Mendapatkan elemen persegi panjang batas.
getClickTarget_() protected Elemen yang akan diikat ke pengendali klik. Jika tidak disetel secara eksplisit, setelan defaultnya adalah root SVG kolom. Saat elemen ini diklik di kolom yang dapat diedit, editor akan terbuka.
getConstants() Mendapatkan penyedia konstanta perender.
getDisplayText_() protected Dapatkan teks dari bidang ini untuk ditampilkan pada blok. Mungkin berbeda dengan getText karena elipsis, dan format lainnya.
getFlipRtl() Menampilkan apakah kita harus membalik kolom di RTL.
getSize()

Menampilkan tinggi dan lebar kolom.

Ini seharusnya *secara umum* menjadi satu-satunya tempat render_ dipanggil.

getSourceBlock() Dapatkan blok tempat kolom ini dilampirkan.
getSvgRoot() Mendapatkan elemen grup untuk kolom yang dapat diedit ini. Digunakan untuk mengukur ukuran dan untuk penentuan posisi.
getText_() protected Hook developer untuk mengganti teks yang ditampilkan dari kolom ini. Ganti jika representasi teks dari nilai kolom ini bukan hanya transmisi string nilainya. Mengembalikan null untuk menggunakan transmisi string.
getText() Dapatkan teks dari kolom ini. Ganti getText_ untuk memberikan perilaku yang berbeda dari sekadar mentransmisikan nilai ke string.
getTextContent() protected Mendapatkan konten teks.
getTextElement() protected Mendapatkan elemen teks.
getTooltip() Menampilkan teks tooltip untuk kolom ini.
getValidator() Mendapatkan fungsi validasi untuk kolom yang dapat diedit, atau null jika tidak ditetapkan.
getValue() Mendapatkan nilai kolom saat ini.
initModel() Menginisialisasi model kolom setelah diinstal pada blok. Tanpa pengoperasian secara default.
initView() protected Buat UI blok untuk kolom ini.
isClickable() Periksa apakah kolom ini menetapkan fungsi showEditor_.
isClickableInFlyout(autoClosingFlyout) Periksa apakah kolom harus dapat diklik saat blok sedang terbuka. Defaultnya adalah kolom dapat diklik di menu {i>flyout<i} yang selalu terbuka seperti {i>toolbox<i} sederhana, tetapi tidak dalam {i>flyout<i} penutupan otomatis seperti toolbox kategori. Subclass dapat mengganti fungsi ini untuk mengubah perilaku ini. Perhatikan bahwa isClickable juga harus menampilkan benar agar hal ini dapat berpengaruh.
isCurrentlyEditable() Periksa apakah kolom ini saat ini dapat diedit. Beberapa kolom tidak pernah dapat DIEDIT (misalnya, label teks). Kolom lain mungkin dapat DIEDIT, tetapi mungkin ada di blok yang tidak dapat diedit atau saat ini dinonaktifkan.
isEnabled() Periksa apakah nilai kolom ini dapat diubah menggunakan editor jika blok sumber dapat diedit.
isFullBlockField() protected

Menentukan apakah kolom ini harus mengisi seluruh blok atau tidak.

Hati-hati saat mengganti fungsi ini. Aplikasi ini mungkin tidak berfungsi seperti yang Anda harapkan / dimaksudkan karena perilakunya seperti diretas. Jika Anda berpikir untuk mengganti fungsi ini, posting di forum dengan perilaku yang Anda inginkan untuk melihat apakah ada pendekatan lain.

isSerializable() Periksa apakah kolom ini harus diserialisasi oleh perender XML. Menangani logika kompatibilitas mundur dan status yang tidak sesuai.
isTabNavigable() Menampilkan apakah kolom dapat dinavigasi tab atau tidak.
isVisible() Mendapatkan apakah kolom yang dapat diedit ini terlihat atau tidak.
loadLegacyState(callingClass, state) Memuat status yang diberikan menggunakan hook XML lama, jika hook tersebut harus digunakan. Menampilkan nilai benar untuk menunjukkan bahwa pemuatan telah ditangani, menampilkan salah jika tidak.
onLocationChange(_) Memberi tahu kolom bahwa lokasi telah berubah.
onMouseDown_(e) protected Menangani peristiwa pointerdown pada kolom.
onShortcut(_shortcut) Menangani pintasan keyboard yang diberikan.
positionBorderRect_() protected Memosisikan rect batas kolom setelah perubahan ukuran.
positionTextElement_(xOffset, contentWidth) protected Memosisikan elemen teks kolom setelah perubahan ukuran. Ini menangani pemosisian LTR dan RTL.
render_() protected

Digunakan oleh getSize() untuk memindahkan/mengubah ukuran elemen DOM, dan mendapatkan ukuran baru.

Semua rendering yang berpengaruh pada ukuran/bentuk blok harus dilakukan di sini, dan harus dipicu oleh getSize().

repositionForWindowResize()

Hook developer untuk mengubah posisi WidgetDiv selama perubahan ukuran jendela. Anda harus menentukan hook ini jika kolom Anda memiliki WidgetDiv yang perlu mengubah posisinya sendiri saat jendela diubah ukurannya. Misalnya, kolom input teks menentukan hook ini sehingga input WidgetDiv dapat mengubah posisinya pada peristiwa pengubahan ukuran jendela. Hal ini sangat penting saat input modal telah dinonaktifkan, karena perangkat Android akan memicu peristiwa pengubahan ukuran jendela saat keyboard virtual terbuka.

Jika Anda ingin WidgetDiv menyembunyikan dirinya sendiri, bukan mengubah posisi, tampilkan nilai salah. Ini merupakan perilaku default.

DropdownDivs sudah menangani logika pemosisiannya sendiri, jadi Anda tidak perlu mengganti fungsi ini jika kolom Anda hanya memiliki DropdownDiv.

saveLegacyState(callingClass) protected Menampilkan versi status XML string, jika harus digunakan. Jika tidak, metode ini akan menampilkan null, untuk menandakan bahwa kolom harus menggunakan serialisasinya sendiri.
setEnabled(enabled) Tetapkan apakah nilai kolom ini dapat diubah menggunakan editor saat blok sumber dapat diedit.
setSourceBlock(block) Lampirkan kolom ini ke blok.
setTooltip(newTip) Menetapkan tooltip untuk kolom ini.
setValidator(handler)

Menetapkan fungsi validasi baru untuk kolom yang dapat diedit, atau menghapus validator yang ditetapkan sebelumnya.

Fungsi validator mengambil nilai kolom baru, dan menampilkan nilai yang divalidasi. Nilai yang divalidasi dapat berupa nilai input, versi nilai input yang dimodifikasi, atau null untuk membatalkan perubahan.

Jika fungsi tidak menampilkan apa pun (atau menampilkan tidak ditentukan), nilai baru dianggap valid. Hal ini untuk memungkinkan kolom menggunakan fungsi yang divalidasi sebagai notifikasi peristiwa perubahan tingkat kolom.

setValue(newValue, fireChangeEvent) Digunakan untuk mengubah nilai kolom. Menangani validasi dan peristiwa. Subclass harus mengganti doClassValidation_ dan doValueUpdate_, bukan metode ini.
showEditor_(_e) protected Hook developer untuk membuat editor kolom. Ini tidak dioperasikan secara default, dan harus diganti untuk membuat editor.
updateEditable() Tambahkan atau hapus UI yang menunjukkan apakah kolom ini dapat diedit atau tidak.
updateSize_(margin) protected Memperbarui ukuran kolom berdasarkan teks.