คลาสฟิลด์
คลาสนามธรรมสำหรับฟิลด์ที่แก้ไขได้
ลายเซ็น:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
การนำไปใช้งาน: IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
ผู้ผลิต
ผู้ผลิต | ตัวปรับแต่ง | คำอธิบาย |
---|---|---|
(constructor)(ค่า, โปรแกรมตรวจสอบ, การกำหนดค่า) | สร้างอินสแตนซ์ใหม่ของคลาส Field |
พร็อพเพอร์ตี้
พร็อพเพอร์ตี้ | ตัวปรับแต่ง | Type | คำอธิบาย |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | null | องค์ประกอบเส้นขอบ SVG ของช่องที่แสดงผล |
clickTarget_ | protected |
องค์ประกอบ | null | องค์ประกอบที่เชื่อมโยงกับเครื่องจัดการคลิก |
constants_ | protected |
ConstantProvider | null | ค่าคงที่ที่เชื่อมโยงกับตัวแสดงผลของบล็อกแหล่งที่มา |
เคอร์เซอร์ | สตริง | รูปแบบของเคอร์เซอร์เมาส์เมื่อวางไว้เหนือฮอตสปอตที่เริ่มต้นเครื่องมือแก้ไข | |
DEFAULT_VALUE | T | null | หากต้องการเขียนทับค่าเริ่มต้นที่ตั้งไว้ใน **ฟิลด์** ให้อัปเดตต้นแบบโดยตรง เช่น |
|
แก้ไขได้ | boolean | ช่องที่แก้ไขได้มักจะแสดง UI บางประเภทที่บ่งชี้ว่าสามารถแก้ไขได้ นอกจากนี้ ตัวซีเรียลไลเซอร์ยังบันทึกชุดสัญญาณเหล่านี้เอาไว้ด้วย | |
enabled_ | protected |
boolean | เปลี่ยนค่าของช่องได้โดยใช้เครื่องมือแก้ไขในบล็อกที่แก้ไขได้ไหม |
fieldGroup_ | protected |
SVGGElement | null | องค์ประกอบกลุ่ม SVG ของช่องที่แสดงผล |
isDirty_ | protected |
boolean | ต้องแสดงผลบล็อกนี้อีกครั้งไหม |
maxDisplayLength | ตัวเลข | จำนวนอักขระสูงสุดของข้อความที่จะแสดงก่อนเพิ่มจุดไข่ปลา | |
ชื่อ? | สตริง | (ไม่บังคับ) ชื่อช่อง ไม่ซ้ำกันภายในแต่ละบล็อก ป้ายกำกับแบบคงที่มักจะไม่มีการตั้งชื่อ | |
NBSP |
|
(ไม่ได้ประกาศ) | การเว้นวรรคที่ไม่ขึ้นบรรทัดใหม่ |
นำไปใช้ได้จริง | boolean | ช่องแบบอนุกรมจะได้รับการบันทึกโดยตัวซีเรียลไลเซอร์ ช่องที่ไม่สามารถทำให้เป็นอนุกรมไม่ได้ ช่องที่แก้ไขได้ควรมีการเรียงลำดับได้ โดยจะไม่เป็นเช่นนั้นโดยค่าเริ่มต้น ทำให้ SERIALIZABLE เข้ากันได้แบบย้อนหลัง | |
size_ | protected |
ขนาด | |
SKIP_SETUP |
|
สัญลักษณ์ที่ไม่ซ้ำกัน | ค่าที่ใช้ส่งสัญญาณเมื่อตัวสร้างของช่องต้อง *ไม่* กำหนดค่าของฟิลด์หรือเรียกใช้ Configuration_ และควรอนุญาตให้คลาสย่อยทำเช่นนั้นแทน |
sourceBlock_ | protected |
บล็อก | null | บล็อกการแนบช่องนี้ เริ่มต้นเป็น Null จากนั้นตั้งค่า Init |
textContent_ | protected |
ข้อความ | null | องค์ประกอบเนื้อหาข้อความของช่องที่แสดงผล |
textElement_ | protected |
SVGTextElement | null | องค์ประกอบข้อความ SVG ของช่องที่แสดงผล |
validator_ | protected |
FieldValidator<T> | null | ระบบจะเรียกใช้ฟังก์ชันตรวจสอบเมื่อผู้ใช้แก้ไขช่องที่แก้ไขได้ |
value_ | protected |
T | null | |
visible_ | protected |
boolean | ช่องนี้มองเห็นได้หรือถูกซ่อนเนื่องจากการบล็อกถูกยุบ |
วิธีการ
วิธีการ | ตัวปรับแต่ง | คำอธิบาย |
---|---|---|
applyColour() | อัปเดตฟิลด์ให้ตรงกับสี/รูปแบบของบล็อก คลาสย่อยที่ไม่ใช่นามธรรมอาจต้องการใช้การตั้งค่านี้หากสีของฟิลด์ขึ้นอยู่กับสีของบล็อก โดยจะมีการเรียกใช้โดยอัตโนมัติตามเวลาที่เกี่ยวข้อง เช่น เมื่อบล็อกระดับบนสุดหรือโหมดแสดงภาพมีการเปลี่ยนแปลง โปรดดูเอกสารประกอบของช่องสำหรับข้อมูลเพิ่มเติม หรือดูตัวอย่างใน FieldDropdown |
|
bindEvents_() | protected |
เชื่อมโยงเหตุการณ์กับช่อง คลาสย่อยสามารถลบล้างได้ในกรณีที่ต้องจัดการอินพุตที่กำหนดเอง |
configure_(config) | protected |
ประมวลผลการจับคู่การกำหนดค่าที่ส่งไปยังฟิลด์ |
createBorderRect_() | protected |
สร้างองค์ประกอบสี่เหลี่ยมผืนผ้าตรงขอบช่อง ไม่ลบล้างโดยคลาสย่อย แต่ให้แก้ไขผลลัพธ์ของฟังก์ชันภายใน initView หรือสร้างฟังก์ชันแยกต่างหากเพื่อใช้ในการเรียกใช้ |
createTextElement_() | protected |
สร้างองค์ประกอบข้อความในช่อง ไม่ลบล้างโดยคลาสย่อย แต่ให้แก้ไขผลลัพธ์ของฟังก์ชันภายใน initView หรือสร้างฟังก์ชันแยกต่างหากเพื่อใช้ในการเรียกใช้ |
doClassValidation_(newValue) | protected |
ตรวจสอบการเปลี่ยนแปลงค่าของช่องก่อนที่จะตั้งค่า ดู **FieldDropdown** เพื่อดูตัวอย่างการใช้งานคลาสย่อย **หมายเหตุ:** การตรวจสอบจะแสดงตัวเลือก 1 รายการระหว่าง |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_invalidValue) | protected |
ใช้เพื่อแจ้งช่องว่ามีการป้อนค่าที่ไม่ถูกต้อง คลาสย่อยสามารถลบล้างได้ โปรดดู FieldTextInput ไม่มีการดำเนินการโดยค่าเริ่มต้น |
doValueUpdate_(newValue) | protected |
ใช้เพื่ออัปเดตค่าของช่อง สามารถลบล้างโดยคลาสย่อยเพื่อจัดเก็บค่าที่กำหนดเอง/อัปเดตสิ่งภายนอก |
getAbsoluteXY_() | protected |
แสดงพิกัดสัมบูรณ์ของมุมบนซ้ายของฟิลด์นี้ ต้นทาง (0,0) คือมุมซ้ายบนของส่วนเนื้อหาในหน้า |
getBorderRect() | protected |
รับองค์ประกอบรูปสี่เหลี่ยมผืนผ้า |
getClickTarget_() | protected |
องค์ประกอบที่จะเชื่อมโยงตัวแฮนเดิลการคลิก หากไม่ได้ตั้งค่าไว้อย่างชัดแจ้ง ค่าเริ่มต้นจะเป็นรูท SVG ของช่อง เมื่อคลิกองค์ประกอบนี้ในช่องที่แก้ไขได้ ตัวแก้ไขจะเปิดขึ้น |
getConstants() | รับผู้ให้บริการค่าคงที่ของโหมดแสดงภาพ | |
getDisplayText_() | protected |
นำข้อความจากฟิลด์นี้เพื่อแสดงในบล็อก อาจแตกต่างจาก getText เนื่องจากจุดไข่ปลาและการจัดรูปแบบอื่นๆ |
getFlipRtl() | ส่งคืนว่าเราควรสลับฟิลด์ใน RTL หรือไม่ | |
getSize() | แสดงความสูงและความกว้างของฟิลด์ ที่ควร *โดยทั่วไป* ควรเป็นที่เดียวที่มีการเรียกใช้ Display_ |
|
getSourceBlock() | รับบล็อกที่แนบกับช่องนี้ | |
getSvgRoot() | รับองค์ประกอบกลุ่มสำหรับช่องที่แก้ไขได้นี้ ใช้สำหรับวัดขนาดและตำแหน่ง | |
getText_() | protected |
ฮุกของนักพัฒนาซอฟต์แวร์ที่จะลบล้างข้อความที่แสดงผลในช่องนี้ ลบล้างหากการนำเสนอข้อความของค่าของช่องนี้ไม่ใช่แค่สตริงของค่า เปลี่ยนค่า Null กลับไปเป็นค่าปัจจุบันสำหรับการแคสต์สตริง |
getText() | รับข้อความจากช่องนี้ ลบล้าง getText_ เพื่อให้ลักษณะการทำงานที่แตกต่างจากการแคสต์ค่าเป็นสตริง | |
getTextContent() | protected |
รับเนื้อหาข้อความ |
getTextElement() | protected |
รับองค์ประกอบข้อความ |
getTooltip() | แสดงผลข้อความเคล็ดลับเครื่องมือสำหรับช่องนี้ | |
getValidator() | รับฟังก์ชันการตรวจสอบสำหรับช่องที่แก้ไขได้ หรือหากไม่ได้ตั้งค่าไว้ | |
getValue() | รับค่าปัจจุบันของช่อง | |
initModel() | เริ่มต้นโมเดลของช่องหลังจากติดตั้งในบล็อกแล้ว ไม่มีการดำเนินการโดยค่าเริ่มต้น | |
initView() | protected |
สร้าง UI การบล็อกสำหรับฟิลด์นี้ |
isClickable() | ตรวจสอบว่าช่องนี้กำหนดฟังก์ชัน showEditor_ หรือไม่ | |
isClickableInFlyout(autoClosingFlyout) | ตรวจสอบว่าฟิลด์นี้ควรคลิกได้หรือไม่ขณะที่บล็อกอยู่ในหน้าต่าง ค่าเริ่มต้นคือฟิลด์ที่สามารถคลิกได้ในฟิลด์ที่เปิดตลอดเวลา เช่น กล่องเครื่องมือแบบง่าย แต่ไม่ใช่ใน flyout การปิดอัตโนมัติ เช่น กล่องเครื่องมือหมวดหมู่ คลาสย่อยอาจลบล้างฟังก์ชันนี้เพื่อเปลี่ยนลักษณะการทำงานนี้ โปรดทราบว่า 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 ในระหว่างการปรับขนาดหน้าต่าง คุณต้องกำหนดฮุกนี้หากช่องมี WidgetDiv ซึ่งจำเป็นต้องเปลี่ยนตำแหน่งตัวเองเมื่อปรับขนาดหน้าต่าง ตัวอย่างเช่น ช่องป้อนข้อความจะกำหนดฮุกนี้เพื่อให้ WidgetDiv ที่ป้อนข้อมูลสามารถเปลี่ยนตำแหน่งตัวเองได้ในเหตุการณ์การปรับขนาดหน้าต่าง การดำเนินการนี้สำคัญอย่างยิ่งเมื่อปิดใช้อินพุตแบบโมดัล เนื่องจากอุปกรณ์ Android จะเริ่มเหตุการณ์การปรับขนาดหน้าต่างเมื่อแป้นพิมพ์เปิดขึ้น หากคุณต้องการให้ WidgetDiv ซ่อนตัวเอง แทนที่จะเปลี่ยนตำแหน่ง ให้ส่งคืนค่าเท็จ นี่คือลักษณะการทำงานเริ่มต้น DropdownDivs จัดการตรรกะการกำหนดตำแหน่งของตนเองอยู่แล้ว ดังนั้นคุณไม่จำเป็นต้องลบล้างฟังก์ชันนี้หากช่องมี DropdownDiv เพียงอย่างเดียว |
|
saveLegacyState(callingClass) | protected |
แสดงผลสถานะ XML ในเวอร์ชันสตริง หากควรใช้ มิเช่นนั้นจะแสดงผลเป็น Null เพื่อส่งสัญญาณว่าช่องนี้ควรใช้การเรียงอันดับของตนเอง |
setEnabled(enabled) | กำหนดว่าจะเปลี่ยนแปลงค่าของช่องนี้โดยใช้ตัวแก้ไขได้หรือไม่เมื่อแก้ไขบล็อกแหล่งที่มาได้ | |
setSourceBlock(block) | แนบฟิลด์นี้ไปยังบล็อก | |
setTooltip(newTip) | ตั้งค่าเคล็ดลับเครื่องมือสำหรับช่องนี้ | |
setValidator(handler) | ตั้งค่าฟังก์ชันการตรวจสอบใหม่สำหรับช่องที่แก้ไขได้ หรือล้างเครื่องมือตรวจสอบที่ตั้งค่าไว้ก่อนหน้านี้ ฟังก์ชันเครื่องมือตรวจสอบจะใช้ค่าฟิลด์ใหม่ และแสดงผลค่าที่ตรวจสอบแล้ว ค่าที่ตรวจสอบความถูกต้องอาจเป็นค่าอินพุต เวอร์ชันที่มีการแก้ไขของค่าอินพุต หรือค่าว่างเพื่อยกเลิกการเปลี่ยนแปลง หากฟังก์ชันไม่แสดงผลลัพธ์ใดๆ (หรือแสดงผลสถานะไม่กําหนด) ระบบจะยอมรับค่าใหม่ว่าถูกต้อง วิธีนี้เป็นการอนุญาตสำหรับฟิลด์ที่ใช้ฟังก์ชันที่ตรวจสอบแล้วเป็นการแจ้งเตือนเหตุการณ์การเปลี่ยนแปลงระดับฟิลด์ |
|
setValue(newValue, fireChangeEvent) | ใช้เพื่อเปลี่ยนค่าของช่อง จัดการการตรวจสอบและเหตุการณ์ คลาสย่อยควรลบล้าง doClassValidation_ และ doValueUpdate_ มากกว่าวิธีการนี้ | |
showEditor_(_e) | protected |
ฮุกของนักพัฒนาซอฟต์แวร์สำหรับสร้างโปรแกรมแก้ไขสำหรับช่อง โดยค่าเริ่มต้น คำสั่งนี้จะไม่มีการดำเนินการ และจะต้องแทนที่เพื่อสร้างตัวแก้ไข |
updateEditable() | เพิ่มหรือนำ UI ที่บ่งชี้ว่าช่องนี้แก้ไขได้หรือไม่ | |
updateSize_(margin) | protected |
อัปเดตขนาดของฟิลด์ตามข้อความ |