คลาสภาคสนาม
คลาสนามธรรมสำหรับช่องที่แก้ไขได้
ลายเซ็น:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
การนำไปใช้งาน: IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
ผู้ผลิต
ผู้ผลิต | คีย์ตัวปรับแต่ง | คำอธิบาย |
---|---|---|
(constructor)(ค่า, เครื่องมือตรวจสอบ, การกำหนดค่า) | สร้างอินสแตนซ์ใหม่ของคลาส Field |
พร็อพเพอร์ตี้
พร็อพเพอร์ตี้ | คีย์ตัวปรับแต่ง | ประเภท | คำอธิบาย |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | ค่าว่าง | องค์ประกอบเส้นขอบ SVG ของช่องที่แสดงผล |
clickTarget_ | protected |
องค์ประกอบ | ค่าว่าง | องค์ประกอบที่เชื่อมโยงกับตัวจัดการการคลิก |
constants_ | protected |
ConstantProvider | ค่าว่าง | ค่าคงที่ที่เกี่ยวข้องกับตัวแสดงผลของบล็อกแหล่งที่มา |
เคอร์เซอร์ | สตริง | รูปแบบเคอร์เซอร์เมาส์เมื่ออยู่เหนือฮอตสปอตที่เริ่มตัวแก้ไข | |
DEFAULT_VALUE | ที | ค่าว่าง | หากต้องการเขียนทับค่าเริ่มต้นที่กำหนดไว้ใน **ช่อง** ให้อัปเดตต้นแบบโดยตรง เช่น |
|
แก้ไขได้ | boolean | โดยปกติแล้วช่องที่แก้ไขได้จะแสดง UI บางประเภทที่ระบุว่าช่องนั้นแก้ไขได้ ซีเรียลไลเซอร์ก็จะบันทึกรายการเหล่านี้ด้วย | |
enabled_ | protected |
boolean | เปลี่ยนค่าในช่องโดยใช้ตัวแก้ไขในบล็อกที่แก้ไขได้ได้ไหม |
fieldGroup_ | protected |
SVGGElement | ค่าว่าง | องค์ประกอบกลุ่ม SVG ของช่องที่แสดงผล |
isDirty_ | protected |
boolean | บล็อกนี้ต้องแสดงผลอีกครั้งไหม |
maxDisplayLength | ตัวเลข | จำนวนอักขระสูงสุดที่จะแสดงก่อนเพิ่มจุดไข่ปลา | |
ชื่ออะไร | สตริง | (ไม่บังคับ) ชื่อของช่อง ไม่ซ้ำกันในแต่ละบล็อก โดยปกติป้ายกำกับแบบคงที่จะไม่มีชื่อ | |
NBSP |
|
(ไม่ได้ประกาศ) | พื้นที่ทำงานแบบไม่ขาดตอน |
ต่อเนื่อง | boolean | ฟิลด์ที่ซีเรียลไลเซอร์จะบันทึกช่องที่รับข้อมูลแบบอนุกรมได้ ส่วนช่องแบบซีเรียลไลเซอร์จะไม่ได้รับการบันทึก ช่องที่แก้ไขได้ควรเป็นแบบเรียงลำดับได้ ค่าเริ่มต้นไม่ได้เป็นเช่นนั้น ดังนั้น SERIALIZABLE จะใช้งานร่วมกันได้แบบย้อนหลัง | |
size_ | protected |
ขนาด | |
SKIP_SETUP |
|
สัญลักษณ์ที่ไม่ซ้ำกัน | ค่าที่ใช้ในการส่งสัญญาณเมื่อตัวสร้างของช่องควร *ไม่* กำหนดค่าของช่องหรือเรียกใช้ Configuration_ และควรอนุญาตให้คลาสย่อยทำแทน |
sourceBlock_ | protected |
บล็อก | ค่าว่าง | บล็อกช่องที่แนบมาด้วย เริ่มต้นเป็นค่าว่าง จากนั้นตั้งค่าใน init |
textContent_ | protected |
ข้อความ | ค่าว่าง | องค์ประกอบเนื้อหาข้อความของช่องที่แสดงผล |
textElement_ | protected |
SVGTextElement | ค่าว่าง | องค์ประกอบข้อความ SVG ของช่องที่แสดงผล |
validator_ | protected |
FieldValidator<T> | ค่าว่าง | มีการเรียกใช้ฟังก์ชันการตรวจสอบเมื่อผู้ใช้แก้ไขช่องที่แก้ไขได้ |
value_ | protected |
ที | ค่าว่าง | |
visible_ | protected |
boolean | ช่องมองเห็นได้หรือซ่อนอยู่เนื่องจากมีการยุบบล็อกไหม |
เมธอด
วิธีการ | คีย์ตัวปรับแต่ง | คำอธิบาย |
---|---|---|
applyColour() | อัปเดตช่องให้ตรงกับสี/รูปแบบของบล็อก คลาสย่อยที่ไม่ใช่นามธรรมอาจต้องนำวิธีนี้ไปใช้หากสีของช่องขึ้นอยู่กับสีของบล็อก โดยจะมีการเรียกใช้โดยอัตโนมัติเมื่อถึงเวลาที่เกี่ยวข้อง เช่น เมื่อมีการเปลี่ยนแปลงบล็อกหรือตัวแสดงผลระดับบนสุด ดูข้อมูลเพิ่มเติมได้จากเอกสารประกอบเกี่ยวกับช่อง หรือดูตัวอย่างได้ในช่องช่องแบบเลื่อนลง |
|
bindEvents_() | protected |
เชื่อมโยงเหตุการณ์กับฟิลด์ คลาสย่อยสามารถลบล้างได้หากจําเป็นต้องมีการจัดการอินพุตที่กําหนดเอง |
configure_(config) | protected |
ประมวลผลแมปการกำหนดค่าที่ส่งไปยังฟิลด์ |
createBorderRect_() | protected |
สร้างองค์ประกอบรูปสี่เหลี่ยมขอบช่องของช่อง ไม่ให้คลาสย่อยลบล้าง ให้แก้ไขผลลัพธ์ของฟังก์ชันภายใน initView หรือสร้างฟังก์ชันแยกต่างหากเพื่อเรียกใช้ |
createTextElement_() | protected |
สร้างองค์ประกอบข้อความช่อง ไม่ให้คลาสย่อยลบล้าง ให้แก้ไขผลลัพธ์ของฟังก์ชันภายใน initView หรือสร้างฟังก์ชันแยกต่างหากเพื่อเรียกใช้ |
doClassValidation_(newValue) | protected |
ตรวจสอบการเปลี่ยนแปลงค่าของช่องก่อนตั้งค่า ดูตัวอย่างการใช้งานคลาสย่อยได้ที่ **FieldDropdown** **หมายเหตุ** การตรวจสอบจะแสดงตัวเลือก 1 รายการระหว่าง |
doClassValidation_(newValue) | protected |
|
doValueAPI ไม่ถูกต้อง_(_invalidValue, _fireChangeEvent) | protected |
ใช้เพื่อแจ้งให้ช่องทราบว่าป้อนค่าที่ไม่ถูกต้อง สามารถลบล้างได้ด้วยคลาสย่อย โปรดดู FieldTextInput ไม่มีการดำเนินการโดยค่าเริ่มต้น |
doValueUpdate_(newValue) | protected |
ใช้เพื่ออัปเดตค่าของช่อง สามารถลบล้างโดยคลาสย่อยเพื่อจัดเก็บค่าที่กำหนดเอง/อัปเดตของสิ่งต่างๆ ภายนอก |
fromJson(_options) | static |
คลาสย่อยควรนำเมธอดนี้ไปใช้ใหม่เพื่อสร้างคลาสย่อยฟิลด์จากออบเจ็กต์อาร์กิวเมนต์ JSON เกิดข้อผิดพลาดในการพยายามลงทะเบียนคลาสย่อยฟิลด์ใน FieldRegistry หากคลาสย่อยดังกล่าวไม่ได้ลบล้างเมธอดนี้ |
getAbsoluteXY_() | protected |
แสดงพิกัดสัมบูรณ์ของมุมซ้ายบนของฟิลด์นี้ จุดเริ่มต้น (0,0) คือมุมซ้ายบนของส่วนเนื้อหาในหน้า |
getBorderRect() | protected |
รับองค์ประกอบสี่เหลี่ยมผืนผ้าเส้นขอบ |
getClickTarget_() | protected |
องค์ประกอบที่จะเชื่อมโยงตัวจัดการการคลิก หากไม่ได้ตั้งค่าไว้อย่างชัดแจ้ง ค่าเริ่มต้นจะเป็นราก SVG ของช่อง เมื่อคลิกองค์ประกอบนี้ในช่องที่แก้ไขได้ ตัวแก้ไขจะเปิดขึ้น |
getConstants() | รับผู้ให้บริการค่าคงที่สำหรับโหมดแสดงภาพ | |
getDisplayText_() | protected |
รับข้อความจากฟิลด์นี้เพื่อแสดงบนบล็อก อาจแตกต่างจาก getText เนื่องจากจุดไข่ปลาและการจัดรูปแบบอื่นๆ |
getFlipRtl() | แสดงผลว่าเราควรพลิกฟิลด์ด้วย RTL หรือไม่ | |
getSize() | แสดงผลความสูงและความกว้างของฟิลด์ ซึ่ง *โดยทั่วไป* เป็นเพียงตำแหน่งเดียวที่มีการเรียกใช้ Render_ |
|
getSourceBlock() | รับการบล็อกที่ช่องนี้แนบอยู่ | |
getSvgRoot() | รับองค์ประกอบกลุ่มสำหรับช่องที่แก้ไขได้นี้ ใช้สำหรับวัดขนาดและการวางตำแหน่ง | |
getText_() | protected |
ฮุกของนักพัฒนาซอฟต์แวร์เพื่อลบล้างข้อความที่ส่งกลับของช่องนี้ ลบล้างในกรณีที่การแสดงค่าของช่องนี้ไม่ใช่เพียงสตริงของค่า เปลี่ยนค่า Null กลับไปยังรีสอร์ตเพื่อเปลี่ยนไปใช้การแคสต์สตริง |
getText() | รับข้อความจากช่องนี้ ลบล้าง getText_ เพื่อให้มีลักษณะการทำงานที่แตกต่างจากการแคสต์ค่าไปยังสตริงเพียงอย่างเดียว | |
getTextContent() | protected |
รับเนื้อหาข้อความ |
getTextElement() | protected |
รับองค์ประกอบของข้อความ |
getTooltip() | แสดงข้อความเคล็ดลับเครื่องมือสำหรับฟิลด์นี้ | |
getValidator() | รับฟังก์ชันการตรวจสอบฟิลด์ที่แก้ไขได้ หรือค่า Null หากไม่ได้ตั้งค่าไว้ | |
getValue() | ดูค่าปัจจุบันของช่อง | |
initModel() | เริ่มต้นโมเดลของช่องหลังจากติดตั้งบนบล็อกแล้ว ไม่มีการดำเนินการโดยค่าเริ่มต้น | |
initView() | protected |
สร้าง UI บล็อกสำหรับช่องนี้ |
isClickable() | ตรวจสอบว่าช่องนี้ระบุฟังก์ชัน showEditor_ หรือไม่ | |
isClickableInFlyout(autoClosingFlyout) | ตรวจสอบว่าฟิลด์ควรสามารถคลิกได้หรือไม่ขณะที่บล็อกอยู่ในลอยออก ค่าเริ่มต้นคือช่องสามารถคลิกได้ในรูปแบบเปิดตลอดเวลา เช่น กล่องเครื่องมือแบบง่าย แต่ไม่ใช่ในปิดอัตโนมัติ เช่น กล่องเครื่องมือหมวดหมู่ คลาสย่อยอาจลบล้างฟังก์ชันนี้เพื่อเปลี่ยนลักษณะการทำงานดังกล่าว โปรดทราบว่า isClickable ต้องแสดงผลเป็น "จริง" ด้วยเพื่อให้มีผล |
|
isCurrentlyEditable() | ตรวจสอบว่าช่องนี้แก้ไขได้หรือไม่ในปัจจุบัน บางช่องแก้ไขไม่ได้ (เช่น ป้ายกำกับข้อความ) ช่องอื่นๆ อาจเป็น "แก้ไขได้" แต่อาจมีอยู่ในการบล็อกที่แก้ไขไม่ได้หรือปิดใช้อยู่ | |
isEnabled() | ตรวจสอบว่าค่าของช่องนี้สามารถเปลี่ยนโดยใช้ตัวแก้ไขเมื่อแก้ไขการบล็อกแหล่งที่มาได้หรือไม่ | |
isFullBlockField() | protected |
กำหนดว่าช่องนี้ควรใช้พื้นที่เต็มบล็อกหรือไม่ โปรดระมัดระวังเมื่อลบล้างฟังก์ชันนี้ อาจไม่ทำงานตามที่คุณคาดหวัง / ตั้งใจไว้ เนื่องจากมีพฤติกรรมในการถูกแฮ็ก หากคุณวางแผนที่จะลบล้างฟังก์ชันนี้ ให้โพสต์สิ่งที่คุณตั้งใจไว้ลงในฟอรัมเพื่อดูว่ามีวิธีอื่นหรือไม่ |
isSerializable() | ตรวจสอบว่าตัวแสดงผล XML ควรทำให้ช่องนี้เป็นอนุกรมหรือไม่ จัดการตรรกะสำหรับความเข้ากันได้แบบย้อนหลังและสถานะที่ไม่สอดคล้อง | |
isTabNavigable() | แสดงผลว่าช่องนำทางแท็บได้หรือไม่ | |
isVisible() | รับข้อมูลว่าช่องที่แก้ไขได้นี้จะปรากฏให้เห็นหรือไม่ | |
loadLegacyState(callingClass, state) | โหลดสถานะที่ระบุโดยใช้ฮุก XML เก่า หากควรใช้ แสดงค่า "จริง" เพื่อระบุว่าการโหลดได้รับการจัดการแล้ว มิเช่นนั้น จะเป็นเท็จ | |
onLocationChange(_) | แจ้งช่องว่ามีการเปลี่ยนแปลงตำแหน่ง | |
onMouseDown_(e) | protected |
จัดการเหตุการณ์ตัวชี้ในช่อง |
onShortcut(_shortcut) | จัดการแป้นพิมพ์ลัดที่ระบุ | |
positionBorderRect_() | protected |
จัดตำแหน่งเส้นขอบของฟิลด์ใดช่องหนึ่งหลังจากเปลี่ยนขนาด |
positionTextElement_(xOffset, contentWidth) | protected |
จัดตำแหน่งองค์ประกอบข้อความของช่องหลังจากการเปลี่ยนแปลงขนาด วิธีนี้จะช่วยรองรับทั้งการจัดตำแหน่ง LTR และ RTL |
render_() | protected |
ใช้โดย getSize() เพื่อย้าย/ปรับขนาดองค์ประกอบ DOM และรับขนาดใหม่ การแสดงผลทั้งหมดที่มีผลต่อขนาด/รูปร่างของบล็อกควรดำเนินการที่นี่ และควรเรียกใช้โดย getSize() |
repositionForWindowResize() | ฮุกสำหรับนักพัฒนาซอฟต์แวร์เพื่อเปลี่ยนตำแหน่ง WidgetDiv ระหว่างการปรับขนาดหน้าต่าง คุณต้องระบุ Hook นี้หากฟิลด์ของคุณมี WidgetDiv ที่ต้องปรับตำแหน่งตัวเองเมื่อมีการปรับขนาดหน้าต่าง ตัวอย่างเช่น ช่องป้อนข้อความจะกำหนดฮุกนี้เพื่อให้ WidgetDiv ของอินพุตเปลี่ยนตำแหน่งตัวเองในเหตุการณ์การปรับขนาดหน้าต่างได้ การดำเนินการนี้สำคัญอย่างยิ่งเมื่อปิดใช้อินพุตแบบโมดัล เนื่องจากอุปกรณ์ Android จะเริ่มเหตุการณ์การปรับขนาดหน้าต่างเมื่อซอฟต์แป้นพิมพ์เปิดขึ้น หากคุณต้องการให้ WidgetDiv ซ่อนตัวเองแทนที่จะเปลี่ยนตำแหน่ง ให้แสดงผลเท็จ นี่คือลักษณะการทำงานเริ่มต้น DropdownDiv จะจัดการตรรกะการกำหนดตำแหน่งของตนเองอยู่แล้ว คุณจึงไม่จำเป็นต้องลบล้างฟังก์ชันนี้หากช่องมีเพียง DropdownDiv |
|
saveLegacyState(callingClass) | protected |
แสดงผลสถานะ XML เวอร์ชันสตริง หากควรใช้ มิเช่นนั้น จะแสดงผลเป็น Null เพื่อส่งสัญญาณแจ้งว่าช่องนี้ควรใช้การเรียงอันดับของตนเอง |
setEnabled(enabled) | กำหนดว่าจะเปลี่ยนค่าของช่องนี้โดยใช้ตัวแก้ไขเมื่อแก้ไขบล็อกแหล่งที่มาได้หรือไม่ | |
setSourceBlock(block) | แนบฟิลด์นี้กับบล็อก | |
setTooltip(newTip) | ตั้งค่าเคล็ดลับเครื่องมือสําหรับช่องนี้ | |
setValidator(handler) | ตั้งค่าฟังก์ชันการตรวจสอบใหม่สำหรับฟิลด์ที่แก้ไขได้ หรือล้างโปรแกรมตรวจสอบที่ตั้งค่าไว้ก่อนหน้านี้ ฟังก์ชันเครื่องมือตรวจสอบจะใช้ค่าช่องใหม่และแสดงผลค่าที่ตรวจสอบแล้ว ค่าที่ตรวจสอบแล้วอาจเป็นค่าอินพุต ค่าอินพุตเวอร์ชันแก้ไข หรือ Null เพื่อล้มเลิกการเปลี่ยนแปลง หากฟังก์ชันไม่แสดงผลลัพธ์ใดๆ (หรือแสดงผล "ไม่ระบุ)" จะยอมรับค่าใหม่ว่า "ถูกต้อง" การดำเนินการนี้เป็นการอนุญาตช่องที่ใช้ฟังก์ชันที่ตรวจสอบแล้วเป็นการแจ้งเตือนเหตุการณ์การเปลี่ยนแปลงระดับช่อง |
|
setValue(newValue, fireChangeEvent) | ใช้เพื่อเปลี่ยนค่าของช่อง จัดการการตรวจสอบความถูกต้องและเหตุการณ์ คลาสย่อยควรลบล้าง doClassValidation_ และ doValueUpdate_ แทนที่จะเป็นเมธอดนี้ | |
showEditor_(_e) | protected |
ฮุกสำหรับนักพัฒนาซอฟต์แวร์สำหรับสร้างเครื่องมือแก้ไขสำหรับช่อง ตัวเลือกนี้จะไม่มีการดำเนินการโดยค่าเริ่มต้น และต้องลบล้างเพื่อสร้างตัวแก้ไข |
updateEditable() | เพิ่มหรือนำ UI ออกซึ่งระบุว่าช่องนี้แก้ไขได้หรือไม่ | |
updateSize_(margin) | protected |
อัปเดตขนาดของช่องตามข้อความ |