Class kolom
Class abstrak untuk kolom yang dapat diedit.
Tanda Tangan:
export declare abstract class Field<T = any> implements IKeyboardAccessible, IRegistrable, ISerializable, IFocusableNode
Mengimplementasikan: IKeyboardAccessible, IRegistrable, ISerializable, IFocusableNode
Konstruktor
Konstruktor | Pengubah | Deskripsi |
---|---|---|
(constructor)(value, validator, config) | Membuat instance baru class Field |
Properti
Properti | Pengubah | Jenis | Deskripsi |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | null | Elemen batas SVG kolom yang dirender. |
clickTarget_ | protected |
Elemen | null | Elemen yang menjadi tempat pengendali klik terikat. |
constants_ | protected |
ConstantProvider | null | Konstanta yang terkait dengan perender blok sumber. |
DEFAULT_VALUE | T | null | Untuk menimpa nilai default yang ditetapkan di **Kolom**, perbarui prototipe secara langsung. Contoh: |
|
EDITABLE | boolean | Kolom yang dapat diedit biasanya menampilkan semacam UI yang menunjukkan bahwa kolom tersebut dapat diedit. Nilai ini juga akan disimpan oleh serializer. | |
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 maksimum teks yang akan ditampilkan sebelum menambahkan elipsis. | |
name? | string | (Opsional) Nama kolom. Unik dalam setiap blok. Label statis biasanya tidak bernama. | |
NBSP |
|
(tidak dideklarasikan) | Spasi non-pemisah. |
SERIALIZABLE | boolean | Kolom serializable disimpan oleh serializer, sedangkan kolom non-serializable tidak. Kolom yang dapat diedit juga harus dapat diserialisasi. Hal ini tidak berlaku secara default sehingga SERIALIZABLE kompatibel dengan versi sebelumnya. | |
size_ | protected |
Ukuran | Mendapatkan ukuran kolom ini. Karena getSize() dan updateSize() memiliki efek samping, hal ini berfungsi sebagai shim untuk subclass yang ingin menyesuaikan batas kolom saat menetapkan/mendapatkan ukuran tanpa memicu rendering yang tidak diinginkan atau efek samping lainnya. Perhatikan bahwa subclass harus mengganti *baik* get maupun set jika salah satunya diganti; implementasi mungkin hanya memanggil langsung ke super, tetapi harus ada sesuai spesifikasi JS. |
SKIP_SETUP |
|
simbol unik | Nilai yang digunakan untuk memberi sinyal saat konstruktor kolom *tidak* boleh menetapkan nilai kolom atau menjalankan configure_, dan harus mengizinkan subclass untuk melakukannya. |
sourceBlock_ | protected |
Block | null | Blok yang terkait dengan kolom ini. Dimulai sebagai null, lalu ditetapkan dalam 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 yang 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 cocok dengan warna/gaya blok. Sub-class 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 atau perender induk berubah. Lihat dokumentasi kolom untuk mengetahui informasi selengkapnya, atau FieldDropdown untuk mengetahui contohnya. |
|
bindEvents_() | protected |
Mengikat peristiwa ke kolom. Dapat diganti oleh subclass jika perlu melakukan penanganan input kustom. |
canBeFocused() | Lihat IFocusableNode.canBeFocused. | |
configure_(config) | protected |
Memproses peta konfigurasi yang diteruskan ke kolom. |
createBorderRect_() | protected |
Buat elemen persegi panjang batas kolom. Tidak boleh diganti oleh subclass. Sebagai gantinya, ubah hasil fungsi di dalam initView, atau buat fungsi terpisah untuk dipanggil. |
createTextElement_() | protected |
Buat elemen teks kolom. Tidak boleh diganti oleh subclass. Sebagai gantinya, ubah hasil fungsi di dalam initView, atau buat fungsi terpisah untuk dipanggil. |
dispose() | Buang semua objek dan peristiwa DOM yang termasuk dalam kolom yang dapat diedit ini. | |
doClassValidation_(newValue) | protected |
Memvalidasi perubahan pada nilai kolom sebelum ditetapkan. Lihat **FieldDropdown** untuk mengetahui contoh penerapan 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 nilai kustom/memperbarui hal-hal eksternal. |
forceRerender() | Memaksa render ulang blok tempat kolom ini diinstal, yang akan merender ulang kolom ini dan menyesuaikan perubahan ukuran apa pun. Kolom lain di blok yang sama tidak akan dirender ulang, karena ukurannya telah dicatat. | |
fromJson(_options) | static |
Subclass harus menerapkan ulang metode ini untuk membuat subclass Kolom dari objek arg JSON. Akan terjadi error jika Anda mencoba mendaftarkan subclass kolom di FieldRegistry jika subclass tersebut belum mengganti metode ini. |
fromXml(fieldElement) | Menetapkan nilai kolom berdasarkan elemen XML yang diberikan. Hanya boleh dipanggil oleh Blockly.Xml. | |
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 mengikat pengendali klik. Jika tidak ditetapkan secara eksplisit, setelan default-nya 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 format lainnya. |
getFlipRtl() | Menampilkan apakah kita harus membalik kolom dalam RTL atau tidak. | |
getFocusableElement() | Lihat IFocusableNode.getFocusableElement. | |
getFocusableTree() | Lihat IFocusableNode.getFocusableTree. | |
getSize() | Menampilkan tinggi dan lebar kolom. Ini *secara umum* adalah 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 untuk melakukan pemosisian. | |
getText_() | protected |
Hook developer untuk mengganti teks yang ditampilkan dari kolom ini. Ganti jika representasi teks nilai kolom ini bukan hanya cast string dari nilainya. Menampilkan null untuk menggunakan transmisi string. |
getText() | Mendapatkan teks dari kolom ini. Ganti getText_ untuk memberikan perilaku yang berbeda daripada hanya 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() | Dapatkan 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. Secara default, kolom dapat diklik di flyout yang selalu terbuka seperti kotak alat sederhana, tetapi tidak di flyout yang menutup secara otomatis seperti kotak alat kategori. Subclass dapat mengganti fungsi ini untuk mengubah perilaku ini. Perhatikan bahwa isClickable juga harus menampilkan true agar dapat diterapkan. |
|
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 saat blok sumber dapat diedit. | |
isSerializable() | Periksa apakah kolom ini harus diserialisasi oleh perender XML. Menangani logika untuk kompatibilitas mundur dan status yang tidak sesuai. | |
isVisible() | Mendapatkan apakah kolom yang dapat diedit ini terlihat atau tidak. | |
loadLegacyState(callingClass, state) | Memuat status yang diberikan menggunakan hook XML lama, jika harus digunakan. Menampilkan nilai benar (true) untuk menunjukkan bahwa pemuatan telah ditangani, salah jika tidak. | |
loadState(state) | Menetapkan status kolom berdasarkan nilai status yang diberikan. Hanya boleh dipanggil oleh sistem serialisasi. | |
onLocationChange(_) | Memberi tahu kolom bahwa lokasinya telah berubah. | |
onMouseDown_(e) | protected |
Menangani peristiwa pointerdown di kolom. |
onNodeBlur() | Lihat IFocusableNode.onNodeBlur. | |
onNodeFocus() | Lihat IFocusableNode.onNodeFocus. | |
onShortcut(_shortcut) | Menangani pintasan keyboard yang diberikan. | |
positionBorderRect_() | protected |
Memosisikan persegi panjang batas kolom setelah perubahan ukuran. |
positionTextElement_(xOffset, contentWidth) | protected |
Memosisikan elemen teks kolom setelah perubahan ukuran. Ini menangani penentuan posisi LTR dan RTL. |
referencesVariables() | Apakah kolom ini mereferensikan variabel Blockly. Jika benar, serialisasi dan deserialisasi mungkin perlu ditangani secara berbeda. Subclass dapat menggantinya. | |
refreshVariableName() | Muat ulang nama variabel yang direferensikan oleh kolom ini jika kolom ini mereferensikan variabel. | |
render_() | protected |
Digunakan oleh getSize() untuk memindahkan/mengubah ukuran elemen DOM, dan mendapatkan ukuran baru. Semua rendering yang memengaruhi ukuran/bentuk blok harus dilakukan di sini, dan harus dipicu oleh getSize(). |
repositionForWindowResize() | Hook developer untuk memosisikan ulang WidgetDiv selama pengubahan ukuran jendela. Anda perlu menentukan hook ini jika kolom memiliki WidgetDiv yang perlu memosisikan ulang dirinya sendiri saat ukuran jendela diubah. Misalnya, kolom input teks menentukan hook ini sehingga WidgetDiv input dapat memosisikan ulang dirinya sendiri pada peristiwa pengubahan ukuran jendela. Hal ini sangat penting jika 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 memosisikan ulang, tampilkan nilai salah. Ini merupakan perilaku default. DropdownDivs sudah menangani logika pemosisiannya sendiri, sehingga Anda tidak perlu mengganti fungsi ini jika kolom hanya memiliki DropdownDiv. |
|
saveLegacyState(callingClass) | protected |
Menampilkan versi string dari status XML, jika harus digunakan. Jika tidak, nilai ini akan menampilkan null, untuk memberi sinyal bahwa kolom harus menggunakan serialisasinya sendiri. |
saveState(_doFullSerialization) | Menyimpan nilai kolom ini sebagai sesuatu yang dapat diserialisasi ke JSON. Hanya boleh dipanggil oleh sistem serialisasi. | |
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 menggunakan nilai kolom baru, dan menampilkan nilai yang divalidasi. Nilai yang divalidasi dapat berupa nilai input, versi nilai input yang diubah, atau null untuk membatalkan perubahan. Jika fungsi tidak menampilkan apa pun (atau menampilkan undefined), nilai baru akan diterima sebagai 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. Secara default, opsi ini tidak aktif dan harus diganti untuk membuat editor. |
toXml(fieldElement) | Membuat serialisasi nilai kolom ini ke XML. Hanya boleh dipanggil oleh Blockly.Xml. | |
updateEditable() | Menambahkan atau menghapus UI yang menunjukkan apakah kolom ini dapat diedit atau tidak. | |
updateSize_(margin) | protected |
Memperbarui ukuran kolom berdasarkan teks. |