סיווג שדה
מחלקה מופשטת לשדה שניתן לערוך.
Signature:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
הטמעות: IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
יצרנים
יצרן | גורמי שינוי | התיאור |
---|---|---|
(constructor)(value, validator, config) | יצירת מופע חדש של המחלקה Field |
תכונות
נכס | גורמי שינוי | תיאור | התיאור |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | null | רכיב גבול ה-SVG של השדה שעבר עיבוד. |
clickTarget_ | protected |
רכיב | null | הרכיב שאליו קשור ה-handler של הקליקים. |
constants_ | protected |
ConstantProvider | null | קבועים שמשויכים לרינדור של בלוק המקור. |
סמן | מחרוזת | הסגנון של סמן העכבר מעל לנקודה לשיתוף אינטרנט שמפעיל את העורך. | |
DEFAULT_VALUE | T | null | כדי להחליף את ערך ברירת המחדל שמוגדר ב **שדה**, צריך לעדכן ישירות את אב הטיפוס. לדוגמה: |
|
עריכה | boolean | בשדות הניתנים לעריכה בדרך כלל מוצג ממשק משתמש כלשהו שמציין שניתן לערוך אותם. הן יישמרו גם על ידי מבצע הסדרה. | |
enabled_ | protected |
boolean | האם אפשר לשנות את ערך השדה באמצעות העורך בבלוק שניתן לערוך? |
fieldGroup_ | protected |
SVGGElement | null | רכיב קבוצת ה-SVG של השדה שעבר עיבוד. |
isDirty_ | protected |
boolean | האם צריך לעבד מחדש את הבלוק הזה? |
maxDisplayLength | מספר | מספר התווים המקסימלי בטקסט לתצוגה לפני הוספה של שלוש נקודות. | |
name? | מחרוזת | (אופציונלי) שם השדה. ייחודי בכל בלוק. תוויות סטטיות בדרך כלל ללא שם. | |
NBSP |
|
(לא הוצהר) | רווח קשיח. |
לצורך סיווג | boolean | שדות שניתן לערוך בהם סדרות נשמרים על ידי יוצר הסדרה, ואילו שדות שאינם ניתנים לסריאליות לא נשמרים בו. גם שדות שניתן לערוך צריכים להיות ניתנים לעריכה בסדר טורי. זה לא המקרה כברירת מחדל, ולכן ל-SERIALIZABLE יש תאימות לאחור. | |
size_ | protected |
גודל | |
SKIP_SETUP |
|
סמל ייחודי | ערך שמשמש לאות כאשר בנאי של שדה *לא* מגדיר את ערך השדה או להריץ את configuration_ . במקום זאת, צריך לאפשר למחלקה משנית לעשות זאת. |
sourceBlock_ | protected |
חסימה | null | חסימת השדה הזה מצורף. מתחיל כ-null, ולאחר מכן מוגדר בכניסה. |
textContent_ | protected |
טקסט | null | רכיב תוכן הטקסט של השדה שעבר עיבוד. |
textElement_ | protected |
SVGTextElement | null | רכיב טקסט SVG של השדה שעבר עיבוד. |
validator_ | protected |
FieldValidator<T> | null | מתבצעת קריאה לפונקציית אימות כשמשתמש עורך שדה שניתן לעריכה. |
value_ | protected |
T | null | |
visible_ | protected |
boolean | האם השדה גלוי או מוסתר מפני שהחסימה מכווצת? |
שיטות
שיטה | גורמי שינוי | התיאור |
---|---|---|
applyColour() | מעדכן את השדה כך שיתאים לצבע/לסגנון של הבלוק. מחלקות משנה לא מופשטות עשויות לרצות ליישם זאת אם צבע השדה תלוי בצבע הבלוק. היא תופעל באופן אוטומטי בזמנים רלוונטיים, למשל כאשר חסימת ההורה או ה-Renderer משתנים. אפשר לקרוא מידע נוסף במסמכי התיעוד בנושא או באפשרות FieldDropdown כדי לראות דוגמה. |
|
bindEvents_() | protected |
קישור אירועים לשדה. מחלקות משנה יכולות לדרוס אותן אם צריך לבצע טיפול מותאם אישית בקלט. |
configure_(config) | protected |
לעבד את מפת התצורה שמועברת לשדה. |
createBorderRect_() | protected |
צור רכיב מלבני של גבול שדה. לא יחול שינוי על ידי מחלקות משנה. במקום זאת, צריך לשנות את התוצאה של הפונקציה בתוך initView או ליצור פונקציה נפרדת לקריאה. |
createTextElement_() | protected |
יוצרים רכיב טקסט בשדה. לא יחול שינוי על ידי מחלקות משנה. במקום זאת, צריך לשנות את התוצאה של הפונקציה בתוך initView או ליצור פונקציה נפרדת לקריאה. |
doClassValidation_(newValue) | protected |
לאמת את השינויים בערך של שדה לפני שהם מוגדרים. דוגמה להטמעה של מחלקה משנית זמינה בקטע **תפריט נפתח של**. **הערה:** האימות מחזיר אפשרות אחת בין |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_invalidValue) | protected |
ההודעה משמשת לציון ערך לא חוקי בשדה. אפשר לבטל מחלקות משנה באמצעות מחלקות משנה. ללא הפעלה כברירת מחדל. |
doValueUpdate_(newValue) | protected |
משמש לעדכון הערך של שדה. מחלקות משנה יכולות לבטל את השינוי כדי לבצע אחסון מותאם אישית של ערכים/עדכון של דברים חיצוניים. |
getAbsoluteXY_() | protected |
מחזירה את הקואורדינטות המוחלטות של הפינה השמאלית העליונה של השדה הזה. המקור (0,0) הוא הפינה הימנית העליונה של גוף הדף. |
getBorderRect() | protected |
הפונקציה מקבלת את הרכיב של מלבן הגבול. |
getClickTarget_() | protected |
הרכיב שאליו צריך לקשר את ה-handler של הקליקים. אם לא מגדירים במפורש, ברירת המחדל היא הרמה הבסיסית של SVG של השדה. כשלוחצים על הרכיב הזה בשדה שניתן לעריכה, העורך נפתח. |
getConstants() | מקבלים את הספק הקבוע של ה-Renderer. | |
getDisplayText_() | protected |
קבל את הטקסט מהשדה הזה להצגה בבלוק. עשוי להיות שונה מ-getText בשל שלוש נקודות ועיצוב אחר. |
getFlipRtl() | פונקציה זו מחזירה את השאלה אם עלינו להפוך את השדה ב-RTL. | |
getSize() | מחזירה את הגובה והרוחב של השדה. באופן כללי, אזור זה צריך להיות *בדרך כלל* המקום היחיד שממנו מתקבלת קריאה ל-render_. |
|
getSourceBlock() | מקבלים את החסימה שאליה מצורף השדה הזה. | |
getSvgRoot() | הפונקציה מקבלת את רכיב הקבוצה עבור השדה שניתן לעריכה. משמשת למדידת הגודל ולמיקום. | |
getText_() | protected |
קישור הוק (hook) של מפתח לביטול הטקסט המוחזר בשדה הזה. שינוי אם ייצוג הטקסט של הערך בשדה הזה הוא לא רק העברת מחרוזת של הערך שלו. מחזירים את הערך null כדי לבצע העברה למחרוזת. |
getText() | מקבלים את הטקסט מהשדה הזה. יש לשנות את getText_ כדי לספק התנהגות שונה מ-cast של הערך למחרוזת. | |
getTextContent() | protected |
מקבל את תוכן הטקסט. |
getTextElement() | protected |
הפונקציה מקבלת את רכיב הטקסט. |
getTooltip() | מחזירה את טקסט ההסבר הקצר עבור שדה זה. | |
getValidator() | הפונקציה מקבלת את פונקציית האימות עבור שדות שניתן לערוך, או את הערך null אם לא הוגדר. | |
getValue() | מקבלים את הערך הנוכחי בשדה. | |
initModel() | מפעיל את המודל של השדה לאחר שהוא מותקן בבלוק. ללא הפעלה כברירת מחדל. | |
initView() | protected |
יוצרים את ממשק המשתמש לחסימה בשדה הזה. |
isClickable() | בודקים אם השדה הזה מגדיר את הפונקציה showEditor_ . | |
isClickableInFlyout(autoClosingFlyout) | בודקים אם השדה צריך להיות קליקבילי כשהבלוק נמצא במצב נפתח. ברירת המחדל היא שהשדות בשקפים פתוחים תמיד, כמו ארגז הכלים הפשוט, יכולים ללחוץ על שדות, אבל לא בשקפים בסגירה אוטומטית כמו ארגז הכלים של הקטגוריה. מחלקות משנה יכולות לבטל את הפונקציה הזו כדי לשנות את ההתנהגות הזו. לתשומת ליבכם, גם הפונקציה isClickable צריכה להחזיר את הערך true כדי שתהיה לכך השפעה כלשהי. |
|
isCurrentlyEditable() | בדוק אם השדה הזה ניתן כעת לעריכה. חלק מהשדות אף פעם לא ניתנים לעריכה (למשל תוויות טקסט). ייתכן שניתן לערוך שדות אחרים, אבל יכול להיות שהם קיימים בבלוקים שלא ניתנים לעריכה או שהם מושבתים כרגע. | |
isEnabled() | ניתן לבדוק אם אפשר לשנות את הערך של השדה הזה באמצעות כלי העריכה כשניתן לערוך את בלוק המקור. | |
isFullBlockField() | protected |
מגדיר אם השדה הזה ייכלל בבלוק המלא או לא. יש להיזהר כשמבטלים את הפונקציה הזו. יכול להיות שהתכונה לא תפעל בהתאם לציפיות או מהתכוונתם שלכם, מאחר שההתנהגות הזו נפרצה. אם החלטת לבטל את הפונקציה הזו, יש לפרסם בפורום את ההתנהגות שרצית לראות אם יש גישה אחרת. |
isSerializable() | בודקים אם מעבד ה-XML יכול לארגן את השדה הזה בסדרה. מטפל בלוגיקה של תאימות לאחור ומצבים לא תואמים. | |
isTabNavigable() | מראה אם ניתן לנווט בשדה או לא. | |
isVisible() | מראה אם השדה שניתן לעריכה גלוי או לא. | |
loadLegacyState(callingClass, state) | טוען את המצב הנתון באמצעות קטעי ה-hook הישנים של XML, אם יש להשתמש בהם. הפונקציה מחזירה את הערך True כדי לציין שהטעינה טופלה. אחרת, היא מחזירה את הערך False. | |
onLocationChange(_) | הצגת הודעה לשדה על כך שמיקומים שונים השתנו. | |
onMouseDown_(e) | protected |
צריך לטפל באירוע מצביע מטה בשדה. |
onShortcut(_shortcut) | מטפל במקש הקיצור הנתון. | |
positionBorderRect_() | protected |
יש למקם את הגבול של שדה לאחר שינוי הגודל. |
positionTextElement_(xOffset, contentWidth) | protected |
יש למקם את רכיב הטקסט של שדה אחרי שינוי הגודל. אפשרות זו מטפלת במיקום של LTR וגם מימין לשמאל. |
render_() | protected |
משמש את getSize() כדי להעביר רכיבי DOM או לשנות את הגודל שלהם, ולקבל את הגודל החדש. כל הרינדור שיש לו השפעה על הגודל/הצורה של הבלוק צריך להתבצע כאן, וצריך להיות מופעל על ידי getSize(). |
repositionForWindowResize() | קישור (hook) למפתחים למיקום מחדש של ה-WidgetDiv במהלך שינוי גודל של חלון. עליכם להגדיר את ה-hook הזה אם לשדה שלכם יש WidgetDiv שצריך למקם את עצמו מחדש לאחר שינוי גודל החלון. לדוגמה, שדות להזנת טקסט מגדירים את ה-hook הזה כדי ש-WidgetDiv הקלט יוכל למקם את עצמו מחדש באירוע שינוי גודל של חלון. הדבר חשוב במיוחד כשקלט מודאלי מושבת, מפני שמכשירי Android יפעילו אירוע של שינוי גודל החלון כאשר המקלדת הקלה נפתחת. אם רוצים שהווידג'ט יסתיר את עצמו במקום לשנות את המיקום שלו, צריך להחזיר את הווידג'ט FALSE. זאת התנהגות ברירת המחדל. תפריטים נפתחים כבר מטפלים בלוגיקת מיקום משלהם, כך שאין צורך לעקוף פונקציה זו אם השדה שלך כולל רק DropdownDiv. |
|
saveLegacyState(callingClass) | protected |
מחזירה גרסת stringified של מצב ה-XML, אם צריך להשתמש בה. אחרת, הפעולה הזו מחזירה null, כדי לסמן שהשדה צריך להשתמש בסדרה משל עצמו. |
setEnabled(enabled) | אפשר לקבוע אם ניתן לשנות את הערך בשדה הזה באמצעות כלי העריכה כשניתן לערוך את בלוק המקור. | |
setSourceBlock(block) | צירוף השדה הזה לבלוק. | |
setTooltip(newTip) | מגדיר את ההסבר הקצר לשדה הזה. | |
setValidator(handler) | מגדירה פונקציית אימות חדשה לשדות שניתנים לעריכה, או מנקה מאמת שהוגדר בעבר. פונקציית התיקוף מקבלת את ערך השדה החדש ומחזירה ערך שאומת. הערך המאומת יכול להיות ערך הקלט, גרסה ששונתה של ערך הקלט או null כדי לבטל את השינוי. אם הפונקציה לא מחזירה שום דבר (או מחזירה ערך לא מוגדר), הערך החדש יתקבל כחוקי. המטרה היא לאפשר שדות שמשתמשים בפונקציה המאומתת כהתראה על אירוע שינוי ברמת השדה. |
|
setValue(newValue, fireChangeEvent) | משמש לשינוי הערך בשדה הזה. טיפול באימות ובאירועים. מחלקות משנה צריכות לבטל את doClassValidation_ ו-doValueUpdate_ ולא את השיטה הזו. | |
showEditor_(_e) | protected |
קישור למפתח כדי ליצור עורך לשדה. ברירת המחדל היא ללא תפעול, וצריך לעקוף אותה כדי ליצור עורך. |
updateEditable() | מוסיפים או מסירים את ממשק המשתמש שמציין אם השדה הזה ניתן לעריכה. | |
updateSize_(margin) | protected |
עדכון גודל השדה בהתאם לטקסט. |