Class kolom
Class abstrak untuk kolom yang dapat diedit.
Tanda Tangan:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Menerapkan: 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 |
SVGreElement | null (kosong) | Elemen batas SVG kolom yang dirender. |
clickTarget_ | protected |
Elemen | null (kosong) | Elemen yang terikat dengan pengendali klik. |
constants_ | protected |
ConstantProvider | null (kosong) | Konstanta yang terkait dengan perender blok sumber. |
KURSOR | string | Gaya kursor mouse saat melewati hotspot yang memulai editor. | |
DEFAULT_VALUE | Sl null (kosong) | Untuk menimpa nilai default yang disetel di **Field**, perbarui prototipe secara langsung. Contoh: |
|
DAPAT DIEDIT | boolean | Kolom yang dapat diedit biasanya menampilkan semacam UI yang menunjukkan bahwa kolom tersebut dapat diedit. Objek tersebut juga akan disimpan oleh serialisasi. | |
enabled_ | protected |
boolean | Apakah nilai kolom dapat diubah menggunakan editor pada blok yang dapat diedit? |
fieldGroup_ | protected |
SVGGElement | null (kosong) | Elemen grup SVG kolom yang dirender. |
isDirty_ | protected |
boolean | Apakah pemblokiran ini perlu dirender ulang? |
maxDisplayLength | angka | Karakter teks maksimum yang akan ditampilkan sebelum menambahkan elipsis. | |
nama? | string | (Opsional) Nama kolom. Unik dalam setiap blok. Label statis biasanya tanpa nama. | |
NBSP |
|
(tidak dinyatakan) | Ruang tanpa gangguan. |
DASARKAN SERIA | boolean | Kolom yang dapat diserialisasi disimpan oleh serialisasi, sedangkan kolom yang tidak dapat diserialisasi tidak disimpan. Kolom yang dapat diedit juga harus dapat diserialisasi. Hal ini tidak berlaku secara default sehingga SERIALIZABLE kompatibel dengan versi lama. | |
size_ | protected |
Ukuran | |
SKIP_SETUP |
|
simbol unik | Nilai yang digunakan untuk memberi sinyal saat konstruktor kolom *tidak* menetapkan nilai kolom atau menjalankan configuration_, dan harus mengizinkan subclass untuk melakukannya. |
sourceBlock_ | protected |
Blokir | null (kosong) | Blok lampiran kolom ini. Dimulai sebagai null, lalu ditetapkan di init. |
textContent_ | protected |
Teks | null (kosong) | Elemen konten teks kolom yang dirender. |
textElement_ | protected |
SVGTextElement | null (kosong) | Elemen teks SVG kolom yang dirender. |
validator_ | protected |
FieldValidator<T> | null (kosong) | Fungsi validasi yang dipanggil saat pengguna mengedit kolom yang dapat diedit. |
value_ | protected |
Sl null (kosong) | |
visible_ | protected |
boolean | Apakah kolom terlihat atau tersembunyi karena blok diciutkan? |
Metode
Metode | Pengubah | Deskripsi |
---|---|---|
applyColour() | Memperbarui kolom agar sesuai dengan warna/gaya blok. Subclass non-abstrak mungkin ingin menerapkan ini jika warna kolom bergantung pada warna blok. Fungsi ini akan otomatis dipanggil pada waktu yang relevan, seperti saat blok induk atau perender berubah. Lihat dokumentasi kolom untuk informasi selengkapnya, atau FieldDropdown sebagai 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 perlu diganti oleh subclass. Sebagai gantinya, ubah hasil fungsi di dalam initView, atau buat fungsi terpisah yang akan dipanggil. |
createTextElement_() | protected |
Membuat elemen teks kolom. Tidak perlu 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 |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_invalidValue, _fireChangeEvent) | 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 kustom nilai/memperbarui hal eksternal. |
fromJson(_options) | static |
Subclass harus menerapkan ulang metode ini untuk membuat subclass Kolom-nya dari objek arg JSON. Terjadi error saat mencoba mendaftarkan subclass kolom di FieldRegistry jika subclass tersebut belum menggantikan metode ini. |
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 untuk mengikat pengendali klik. Jika tidak disetel secara eksplisit, defaultnya adalah root SVG kolom. Saat elemen ini diklik pada kolom yang dapat diedit, editor akan terbuka. |
getConstants() | Mendapatkan penyedia konstanta perender. | |
getDisplayText_() | protected |
Dapatkan teks dari kolom ini untuk ditampilkan di blok. Mungkin berbeda dari getText karena elipsis, dan pemformatan lainnya. |
getFlipRtl() | Menampilkan apakah kita harus membalik kolom di RTL. | |
getSize() | Menampilkan tinggi dan lebar kolom. *secara umum* ini seharusnya menjadi satu-satunya tempat render_ dipanggil. |
|
getSourceBlock() | Mendapatkan blok tempat kolom ini dilampirkan. | |
getSvgRoot() | Mendapatkan elemen grup untuk kolom yang dapat diedit ini. Digunakan untuk mengukur ukuran dan pemosisian. | |
getText_() | protected |
Hook developer untuk mengganti teks yang ditampilkan di kolom ini. Ganti jika representasi teks dari nilai kolom ini bukan hanya transmisi string dari nilainya. Mengembalikan null untuk menggunakan cast 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 disetel. | |
getValue() | Mendapatkan nilai kolom saat ini. | |
initModel() | Melakukan inisialisasi model kolom setelah diinstal di blok. Tanpa pengoperasian secara default. | |
initView() | protected |
Buat UI blok untuk kolom ini. |
isClickable() | Periksa apakah kolom ini menentukan fungsi showEditor_. | |
isClickableInFlyout(autoClosingFlyout) | Periksa apakah kolom harus dapat diklik saat blok berada di flyout. Defaultnya adalah kolom dapat diklik di menu flyout yang selalu terbuka seperti toolbox sederhana, namun tidak dalam menu flyout yang ditutup secara otomatis seperti toolbox kategori. Subclass dapat mengganti fungsi ini untuk mengubah perilaku ini. Perhatikan bahwa isClickable juga harus menampilkan benar (true) agar tindakan ini dapat diterapkan. |
|
isCurrentlyEditable() | Periksa apakah kolom ini saat ini dapat diedit. Beberapa kolom tidak pernah 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 mengambil seluruh blok atau tidak. Hati-hati saat mengganti fungsi ini. Aktivitas ini mungkin tidak berfungsi seperti yang Anda harapkan / maksudkan 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 untuk 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 ditentukan menggunakan hook XML lama, jika harus digunakan. Menampilkan true (benar) untuk menunjukkan pemuatan telah ditangani, false (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 ditentukan. | |
positionBorderRect_() | protected |
Memosisikan persegi panjang batas bidang 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 ukuran jendela. Anda perlu menentukan hook ini jika kolom Anda memiliki WidgetDiv yang perlu mengubah posisi dirinya sendiri saat jendela diubah ukurannya. Misalnya, kolom input teks menentukan hook ini sehingga WidgetDiv input dapat mengubah posisi dirinya sendiri pada peristiwa pengubahan ukuran jendela. Hal ini terutama penting saat input modal telah dinonaktifkan, karena perangkat Android akan mengaktifkan peristiwa pengubahan ukuran jendela saat keyboard virtual terbuka. Jika Anda ingin WidgetDiv menyembunyikan dirinya sendiri dan bukan mengubah posisi, tampilkan false. Ini merupakan perilaku default. DropdownDivs sudah menangani logika pemosisiannya sendiri, sehingga Anda tidak perlu mengganti fungsi ini jika bidang Anda hanya memiliki DropdownDiv. |
|
saveLegacyState(callingClass) | protected |
Menampilkan versi string dari status XML, jika harus digunakan. Jika tidak, ini akan menampilkan null, untuk menandakan bahwa kolom harus menggunakan serialisasinya sendiri. |
setEnabled(enabled) | Setel apakah nilai kolom ini dapat diubah menggunakan editor jika blok sumber dapat diedit. | |
setSourceBlock(block) | Lampirkan kolom ini ke blok. | |
setTooltip(newTip) | Menetapkan tooltip untuk kolom ini. | |
setValidator(handler) | Menyetel fungsi validasi baru untuk kolom yang dapat diedit, atau menghapus validator yang telah disetel 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 undefined), nilai baru akan diterima sebagai valid. Hal ini memungkinkan kolom yang 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. Opsi ini tidak memiliki pengoperasian secara default, dan harus diganti untuk membuat editor. |
updateEditable() | Menambahkan atau menghapus UI yang menunjukkan apakah kolom ini dapat diedit atau tidak. | |
updateSize_(margin) | protected |
Memperbarui ukuran kolom berdasarkan teks. |