שיעור שדה
מחלקה מופשטת של שדה שניתן לעריכה.
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 | כדי להחליף את ערך ברירת המחדל שמוגדר ב-**Field** (שדה**), צריך לעדכן את האב טיפוס ישירות. לדוגמה: |
|
ניתנת לעריכה | בוליאני | בדרך כלל, שדות שניתנים לעריכה מציגים סוג של ממשק משתמש שמציין שניתן לערוך אותם. הן יישמרו גם באמצעות הכלי הסידורי בסדרה. | |
enabled_ | protected |
בוליאני | האם אפשר לשנות את ערך השדה באמצעות כלי העריכה בבלוק שניתן לעריכה? |
fieldGroup_ | protected |
SVGGElement | null | הרכיב של קבוצת SVG של השדה שעבר עיבוד. |
isDirty_ | protected |
בוליאני | האם צריך לעבד מחדש את הבלוק הזה? |
maxDisplayLength | number | מספר התווים המקסימלי בטקסט שיוצג לפני הוספת שלוש נקודות. | |
name? | מחרוזת | (אופציונלי) שם השדה. ייחודי בכל בלוק. בדרך כלל אין שם לתוויות סטטיות. | |
NBSP |
|
(לא מוצהר) | מרחב בלי הפסקה. |
ניתנת להתאמה | בוליאני | שדות שניתן לבצע בהם פעולות סריאליות נשמרים על ידי המכשיר הסידורי. שדות שאינם ניתנים להעברה לא נשמרים. שדות שניתנים לעריכה צריכים להיות גם ניתנים לסידור בסדרה. זה לא המצב כברירת מחדל, ולכן SERIALIZABLE תואם לאחור. | |
size_ | protected |
גודל | |
SKIP_SETUP |
|
סמל ייחודי | ערך שמשמש לאותת במצבים שבהם בנאי של שדה *לא* יגדיר את ערך השדה או יריץ את set_, ויאפשר למחלקה משנית לעשות זאת. |
sourceBlock_ | protected |
חסימה | null | חסימת השדה הזה מצורף אליו. הערך מתחיל כ-null ולאחר מכן מוגדר כ-init. |
textContent_ | protected |
טקסט | null | רכיב תוכן הטקסט של השדה שעבר עיבוד. |
textElement_ | protected |
SVGTextElement | null | רכיב הטקסט SVG של השדה שעבר עיבוד. |
validator_ | protected |
FieldValidator<T> | null | נשלחת לפונקציית האימות קריאה כאשר משתמש עורך שדה שניתן לעריכה. |
value_ | protected |
T | null | |
visible_ | protected |
בוליאני | האם השדה גלוי או מוסתר עקב כיווץ הבלוק? |
שיטות
שיטה | גורמי שינוי | תיאור |
---|---|---|
applyColour() | מעדכן את השדה כך שיתאים לצבע/לסגנון של הבלוק. אם צבעי השדה תלוי בצבע של הבלוק, ייתכן שכדאי ליישם את זה בתור תת-מחלקות לא מופשטות. היא תופעל באופן אוטומטי בזמנים רלוונטיים, למשל כאשר חסימת ההורה או כלי הרינדור משתנים. לקבלת מידע נוסף, אפשר לעיין במסמכי התיעוד בנושא שדות, או כדי לראות דוגמה בתפריט הנפתח של השדות. |
|
bindEvents_() | protected |
קישור אירועים לשדה. אפשר לשנות את הערכים של מחלקות משנה אם הם צריכים לטפל בקלט מותאם אישית. |
configure_(config) | protected |
מעבדים את מפת ההגדרות שהועברה לשדה. |
createBorderRect_() | protected |
יוצרים רכיב מלבן עם גבול של שדה. לא ניתנים לשינוי על ידי מחלקות משנה. במקום זאת, יש לשנות את התוצאה של הפונקציה בתוך initView, או ליצור פונקציה נפרדת לקריאה. |
createTextElement_() | protected |
יוצרים רכיב טקסט בשדה. לא ניתנים לשינוי על ידי מחלקות משנה. במקום זאת, יש לשנות את התוצאה של הפונקציה בתוך initView, או ליצור פונקציה נפרדת לקריאה. |
doClassValidation_(newValue) | protected |
בדיקה של השינויים בערך בשדה לפני שהם מוגדרים. דוגמה להטמעת מחלקות משנה מופיעה במאמר **תפריט נפתח של שדות**. **הערה:** האימות מחזיר אפשרות אחת בין |
doClassValidation_(newValue) | protected |
|
doValue invalid_(_ invalidValue, _fireChangeEvent) | protected |
משמש לשליחת התראה לשדה שהוזן ערך לא חוקי. אפשר לשנות את הערך של מחלקות משנה באמצעות השדה FieldTextInput. ללא פעולה כברירת מחדל. |
doValueUpdate_(newValue) | protected |
משמש לעדכון הערך של שדה. ניתן לשנות על ידי מחלקות משנה כדי לבצע אחסון מותאם אישית של ערכים/עדכון של דברים חיצוניים. |
fromJson(_options) | static |
מחלקות המשנה צריכות ליישם מחדש את השיטה הזו כדי לבנות את המחלקה המשנית שלהן מאובייקט arg של JSON. אם מחלקה משנית לא ביטלה את השיטה הזו, זו שגיאה בניסיון לרשום מחלקה משנית של שדה ב-FieldRegistry. |
getAbsoluteXY_() | protected |
מחזירה את הקואורדינטות המוחלטות של הפינה השמאלית העליונה של השדה הזה. המקור (0,0) הוא הפינה הימנית העליונה של גוף הדף. |
getBorderRect() | protected |
מקבל את הרכיב של מלבן הגבול. |
getClickTarget_() | protected |
הרכיב שאליו צריך לקשר את handler הקליקים. אם לא מגדירים במפורש, ברירת המחדל היא השורש של SVG של השדה. כשלוחצים על הרכיב הזה בשדה שניתן לעריכה, כלי העריכה נפתח. |
getConstants() | מוצאים את הספק הקבוע של כלי הרינדור. | |
getDisplayText_() | protected |
מקבלים את הטקסט מהשדה הזה שיוצג בבלוק. יכול להיות שהאורך שונה מ-getText בגלל שלוש נקודות ובגלל פורמט אחר. |
getFlipRtl() | מחזירה אם צריך להפוך את השדה ב-RTL. | |
getSize() | מחזירה את הגובה והרוחב של השדה. באופן כללי* המקום הזה צריך להיות המקום היחיד שבו ניתן לקבל קריאה לרינדור. |
|
getSourceBlock() | מקבלים את הבלוק שאליו מצורף השדה הזה. | |
getSvgRoot() | קבלת רכיב הקבוצה עבור השדה הזה שניתן לעריכה. משמש למדידת הגודל ולמיקום. | |
getText_() | protected |
הוק (hook) מפתח שיחליף את הטקסט שמוחזר בשדה הזה. שינוי אם ייצוג הטקסט של ערך השדה הזה הוא לא רק מחרוזת שמייצגת אותו. מחזירים את הערך null כדי לאתר נופש להמרת מחרוזת. |
getText() | מקבלים את הטקסט מהשדה הזה. אפשר לשנות את getText_ כדי לספק אופן פעולה אחר מלבד העברה של הערך למחרוזת. | |
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) | טוענת את המצב הנתון באמצעות ההוּקים הישנים של XML, אם צריך להשתמש בהם. הפונקציה מחזירה את הערך True כדי לציין שהטעינה טופלה. אחרת, הערך false. | |
onLocationChange(_) | מודיעה לשדה שהמיקומים שלו השתנו. | |
onMouseDown_(e) | protected |
טיפול באירוע של מצביע כלפי מטה בשדה. |
onShortcut(_shortcut) | טיפול במקש הקיצור הנתון. | |
positionBorderRect_() | protected |
הצבת גבול גבול של שדה לאחר שינוי גודל. |
positionTextElement_(xOffset, contentWidth) | protected |
צריך למקם רכיב טקסט של שדה אחרי שינוי בגודל. הוא מטפל במיקום LTR ו-RTL. |
render_() | protected |
משמש את getSize() כדי להעביר/לשנות את הגודל של רכיבי DOM ולקבל את הגודל החדש. כל הרינדור שמשפיע על הגודל או הצורה של הבלוק צריך להתבצע כאן, וצריך להפעיל אותו על ידי getSize(). |
repositionForWindowResize() | הוק (hook) מפתח שממקם מחדש את ה-WidgetDiv במהלך שינוי גודל של חלון. עליכם להגדיר את התוכן המושך הזה אם לשדה שלכם יש WidgetDiv שצריך לשנות את מיקום עצמו כשמשנים את גודל החלון. לדוגמה, שדות של קלט טקסט מגדירים את ההוק הזה כך שהקלט WidgetDiv יוכל למקם את עצמו מחדש באירוע של שינוי גודל החלון. יש לכך חשיבות במיוחד כשמשביתים את הקלטים הזמניים, כי מכשירי Android יפעילו אירוע של שינוי גודל החלון כשהמקלדת הרכה נפתחת. אם רוצים שה-WidgetDiv יסתיר את עצמו במקום לשנות את המיקום שלו, עליך להחזיר את הערך false. זאת התנהגות ברירת המחדל. תפריטים נפתחים כבר מטפלים בלוגיקת המיקום משלהם, כך שאין צורך לעקוף את הפונקציה הזו אם בשדה שלך יש רק תפריט נפתח. |
|
saveLegacyState(callingClass) | protected |
מחזירה גרסה מתוזמנת של מצב ה-XML, אם צריך להשתמש בה. אחרת, הפונקציה מחזירה ערך של null, כדי לסמן שהשדה צריך להשתמש בהסדרת סריאלית משלו. |
setEnabled(enabled) | קובעים אם ניתן לשנות את הערך של השדה הזה באמצעות העורך כשניתן לערוך את בלוק המקור. | |
setSourceBlock(block) | מוסיפים את השדה הזה לבלוק. | |
setTooltip(newTip) | הגדרת ההסבר הקצר על השדה הזה. | |
setValidator(handler) | מגדירה פונקציית אימות חדשה לשדות שניתן לערוך, או מנקה מאמת שהוגדר בעבר. פונקציית האימות מקבלת את הערך החדש בשדה החדש ומחזירה את הערך המאומת. הערך שאומת יכול להיות ערך הקלט, גרסה אחרי שינוי של ערך הקלט או ערך null כדי לבטל את השינוי. אם הפונקציה לא מחזירה דבר (או מחזירה ערך לא מוגדר), הערך החדש יתקבל כחוקי. ההרשאה הזו מאפשרת לציין שדות שמשתמשים בפונקציה המאומתת כהתראה על אירוע שינוי ברמת השדה. |
|
setValue(newValue, fireChangeEvent) | משמש לשינוי הערך בשדה. טיפול באימות ובאירועים. מחלקות משנה צריכות לבטל את doClassValidation_ ואת doValueUpdate_ במקום בשיטה הזו. | |
showEditor_(_e) | protected |
הוק (hook) מפתח ליצירת עורך לשדה. זוהי הודעה ללא פעולה כברירת מחדל, וצריך לשנות אותה כדי ליצור כלי עריכה. |
updateEditable() | מוסיפים או מסירים את ממשק המשתמש כדי לציין אם השדה הזה ניתן לעריכה או לא. | |
updateSize_(margin) | protected |
עדכון גודל השדה בהתאם לטקסט. |