فئة الحقل
فئة مجردة لحقل قابل للتعديل
Signature:
export declare abstract class Field<T = any> implements IKeyboardAccessible, IRegistrable, ISerializable, IFocusableNode
تنفِّذ: IKeyboardAccessible وIRegistrable وISerializable وIFocusableNode
الشركات المصنِّعة
الشركة المصنِّعة | مفاتيح التعديل | الوصف |
---|---|---|
(constructor)(value, validator, config) | إنشاء مثيل جديد من فئة Field |
الخصائص
الموقع | مفاتيح التعديل | النوع | الوصف |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | null | عنصر حدود SVG للحقل المعروض |
clickTarget_ | protected |
عنصر | null | العنصر المرتبط بمعالج النقرات |
constants_ | protected |
ConstantProvider | null | الثوابت المرتبطة ببرنامج عرض الكتلة المصدر |
DEFAULT_VALUE | T | null | لإلغاء القيمة التلقائية التي تم ضبطها في **الحقل**، عدِّل النموذج الأولي مباشرةً. مثلاً: |
|
قابلة للتعديل | قيمة منطقية | تعرض الحقول القابلة للتعديل عادةً نوعًا من واجهة المستخدم يشير إلى أنّها قابلة للتعديل. وسيحفظها أيضًا أداة التحويل إلى سلسلة. | |
enabled_ | protected |
قيمة منطقية | هل يمكن تغيير قيمة الحقل باستخدام المحرِّر في قالب قابل للتعديل؟ |
fieldGroup_ | protected |
SVGGElement | null | عنصر مجموعة SVG للحقل المعروض |
isDirty_ | protected |
قيمة منطقية | هل يجب إعادة عرض هذا المربّع؟ |
maxDisplayLength | الرقم | الحد الأقصى لعدد أحرف النص المعروضة قبل إضافة علامة شرطة منقطة | |
name؟ | سلسلة | (اختياري) اسم الحقل فريد ضمن كل قطعة وعادةً ما تكون التصنيفات الثابتة بدون اسم. | |
NBSP |
|
(غير مُعلَن) | مسافة غير فاصل |
SERIALIZABLE | قيمة منطقية | يحفظ معرِّف البيانات التسلسلية الحقول القابلة للتسلسل، ولا يحفظ الحقول غير القابلة للتسلسل. يجب أيضًا أن تكون الحقول القابلة للتعديل قابلة للتسلسل. لا يحدث ذلك تلقائيًا حتى يكون SERIALIZABLE متوافقًا مع الإصدارات القديمة. | |
size_ | protected |
الحجم | تحصل على حجم هذا الحقل. بما أنّ getSize() وupdateSize() لهما تأثيرات جانبية، فإنّ هذا يعمل كحلّ مؤقت للفئات الفرعية التي تريد تعديل حدود الحقل عند ضبط الحجم أو الحصول عليه بدون بدء عرض غير مرغوب فيه أو تأثيرات جانبية أخرى. يُرجى العلم أنّه يجب أن تلغي الفئات الفرعية *كلا* الأسلوبَين get وset في حال تم إلغاء أيّ منهما، وقد يستدعي التنفيذ super مباشرةً، ولكن يجب أن يكون متوفّرًا وفقًا لمواصفات JS. |
SKIP_SETUP |
|
رمز فريد | قيمة تُستخدَم للإشارة إلى الحالات التي يجب فيها ألا يضبط باني الحقل قيمة الحقل أو يُشغِّل configure_، ويجب أن يسمح لفئة فرعية بإجراء ذلك بدلاً من ذلك. |
sourceBlock_ | protected |
حظر | null | الحظر الذي تم إرفاق هذا الحقل به يبدأ العنصر على أنّه فارغ، ثم يتم ضبطه في الإعداد. |
textContent_ | protected |
نص | null | عنصر محتوى النص للحقل المعروض |
textElement_ | protected |
SVGTextElement | null | عنصر نص SVG للحقل المعروض |
validator_ | protected |
FieldValidator<T> | null | يتمّ استدعاء وظيفة التحقّق عندما يعدّل المستخدِم حقلًا قابلاً للتعديل. |
value_ | protected |
T | null | |
visible_ | protected |
قيمة منطقية | هل الحقل مرئي أم مخفي بسبب تصغير الكتلة؟ |
الطُرق
الطريقة | مفاتيح التعديل | الوصف |
---|---|---|
applyColour() | تعديل الحقل ليطابق لون/نمط الكتلة قد تحتاج الفئات الفرعية غير المجردة إلى تنفيذ ذلك إذا كان لون الحقل يعتمد على لون الكتلة. وسيتم استدعاؤه تلقائيًا في الأوقات المناسبة، مثل تغيير العنصر الرئيسي أو أداة التحويل. اطّلِع على مستندات الحقول للحصول على مزيد من المعلومات، أو على FieldDropdown للحصول على مثال. |
|
bindEvents_() | protected |
اربط الأحداث بالحقل. يمكن أن تلغي الأنواع الفرعية هذه الإعدادات إذا كانت بحاجة إلى معالجة إدخال مخصّص. |
canBeFocused() | راجِع IFocusableNode.canBeFocused. | |
configure_(config) | protected |
عالج خريطة الإعدادات التي تم تمريرها إلى الحقل. |
createBorderRect_() | protected |
أنشئ عنصرًا مستطيلاً لحدود الحقل. يجب ألا يتم إلغاؤها من خلال الفئات الفرعية. بدلاً من ذلك، يمكنك تعديل نتيجة الدالة داخل initView أو إنشاء دالة منفصلة للاتّصال بها. |
createTextElement_() | protected |
أنشئ عنصر نص حقل. يجب ألا يتم إلغاؤها من خلال الفئات الفرعية. بدلاً من ذلك، يمكنك تعديل نتيجة الدالة داخل initView أو إنشاء دالة منفصلة للاتّصال بها. |
dispose() | تخلص من جميع عناصر DOM والأحداث التي تنتمي إلى هذا الحقل القابل للتعديل. | |
doClassValidation_(newValue) | protected |
التحقّق من صحة التغييرات التي تم إجراؤها على قيمة حقل قبل ضبطها اطّلِع على **FieldDropdown** للحصول على مثال على تنفيذ الفئة الفرعية. **ملاحظة:** تعرض عملية التحقّق خيارًا واحدًا بين |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_invalidValue, _fireChangeEvent) | protected |
تُستخدَم لإعلام الحقل بأنّه تم إدخال قيمة غير صالحة. يمكن إلغاء هذه السمة من خلال الفئات الفرعية، راجِع FieldTextInput. لا يتم إجراء أي إجراء تلقائيًا. |
doValueUpdate_(newValue) | protected |
تُستخدَم لتعديل قيمة حقل. يمكن أن تلغي الأنواع الفرعية هذه القيمة لإجراء تخزين مخصّص للقيم أو تعديل العناصر الخارجية. |
forceRerender() | فرض إعادة عرض الكتلة التي تم تثبيت هذا الحقل عليها، ما سيؤدي إلى إعادة عرض هذا الحقل وتعديل أي تغييرات في الحجم ولن تتم إعادة عرض الحقول الأخرى في الكتلة نفسها، لأنّه سبق أن تم تسجيل أحجامها. | |
fromJson(_options) | static |
يجب أن تعيد الفئات الفرعية تنفيذ هذه الطريقة لإنشاء فئة فرعية من الحقل من عنصر JSON arg. من الخطأ محاولة تسجيل فئة فرعية للحقل في FieldRegistry إذا لم تلغي هذه الفئة الفرعية هذه الطريقة. |
fromXml(fieldElement) | لضبط قيمة الحقل استنادًا إلى عنصر XML المحدّد يجب ألا يتم استدعاؤها إلا من خلال Blockly.Xml. | |
getAbsoluteXY_() | protected |
عرض الإحداثيات المطلقة للزاوية العلوية اليسرى من هذا الحقل نقطة الأصل (0,0) هي أعلى يمين نص الصفحة. |
getBorderRect() | protected |
تحصل على عنصر المستطيل الحدودي. |
getClickTarget_() | protected |
العنصر الذي سيتم ربط معالِج النقر به. إذا لم يتم ضبطه بشكل صريح، يتم ضبطه تلقائيًا على جذر SVG للحقل. عند النقر على هذا العنصر في حقل قابل للتعديل، سيتم فتح المحرِّر. |
getConstants() | الحصول على موفّر متغيّرات العرض | |
getDisplayText_() | protected |
احصل على النص من هذا الحقل لعرضه في المربّع. قد يختلف عن getText بسبب النقاط اللاتينية المتسلسلة والتنسيقات الأخرى. |
getFlipRtl() | تعرِض ما إذا كان علينا قلب الحقل باتجاه RTL أم لا. | |
getFocusableElement() | راجِع IFocusableNode.getFocusableElement. | |
getFocusableTree() | راجِع IFocusableNode.getFocusableTree. | |
getSize() | عرض ارتفاع الحقل وعرضه يجب أن يكون هذا هو المكان الوحيد الذي يتم من خلاله استدعاء render_ *بشكل عام*. |
|
getSourceBlock() | الحصول على الكتلة التي تم إرفاق هذا الحقل بها | |
getSvgRoot() | تحصل على عنصر المجموعة لهذا الحقل القابل للتعديل. تُستخدَم لقياس الحجم وتحديد الموضع. | |
getText_() | protected |
عبارة تُستخدَم من قِبل المطوّرين لتجاهل النص المعروض في هذا الحقل يمكنك إلغاء القيمة إذا كان التمثيل النصي لقيمة هذا الحقل ليس مجرد سلسلة نصية تم تحويلها إلى قيمة. عرض قيمة فارغة للرجوع إلى تحويل سلسلة. |
getText() | الحصول على النص من هذا الحقل يمكنك إلغاء getText_ لتقديم سلوك مختلف عن مجرد تحويل القيمة إلى سلسلة. | |
getTextContent() | protected |
الحصول على محتوى النص |
getTextElement() | protected |
الحصول على عنصر النص |
getTooltip() | تعرِض هذه السمة نص التلميح لهذا الحقل. | |
getValidator() | تحصل على دالة التحقّق للحقول القابلة للتعديل، أو تكون فارغة إذا لم يتم ضبطها. | |
getValue() | الحصول على القيمة الحالية للحقل | |
initModel() | تُستخدَم هذه الدالة لإعداد نموذج الحقل بعد تثبيته على أحد الكتل. لا يتم إجراء أي إجراء تلقائيًا. | |
initView() | protected |
أنشئ واجهة مستخدم للوحدة الأساسية لهذا الحقل. |
isClickable() | تحقَّق ممّا إذا كان هذا الحقل يحدِّد الدالة showEditor_. | |
isClickableInFlyout(autoClosingFlyout) | تحقّق مما إذا كان يجب أن يكون الحقل قابلاً للنقر عندما يكون المربّع في نافذة منبثقة. الإعداد التلقائي هو أنّه يمكن النقر على الحقول في النوافذ المنبثقة المفتوحة دائمًا، مثل صندوق الأدوات البسيط، ولكن ليس في النوافذ المنبثقة التي يتم إغلاقها تلقائيًا، مثل صندوق أدوات الفئات. يمكن للطبقات الفرعية إلغاء هذه الوظيفة لتغيير هذا السلوك. يُرجى العلم أنّه يجب أن يعرض isClickable أيضًا قيمة صحيحة لكي يكون لهذا الإجراء أي تأثير. |
|
isCurrentlyEditable() | تحقّق ممّا إذا كان هذا الحقل قابلاً للتعديل حاليًا. لا يمكن تعديل بعض الحقول مطلقًا (مثل التصنيفات النصية). قد تكون الحقول الأخرى قابلة للتعديل، ولكن قد تكون موجودة في وحدات غير قابلة للتعديل أو قد تكون غير مفعّلة حاليًا. | |
isEnabled() | تحقَّق ممّا إذا كان يمكن تغيير قيمة هذا الحقل باستخدام المحرِّر عندما تكون الكتلة المصدر قابلة للتعديل. | |
isSerializable() | تحقَّق ممّا إذا كان يجب أن يُسلسل مُعرِّف XML هذا الحقل. تعالج هذه القيمة منطق التوافق مع الإصدارات القديمة والحالات غير المتوافقة. | |
isVisible() | تحصل على ما إذا كان هذا الحقل القابل للتعديل مرئيًا أم لا. | |
loadLegacyState(callingClass, state) | تحمِّل الحالة المحدّدة باستخدام أدوات الربط القديمة بتنسيق XML، في حال كان يجب استخدامها. تعرِض هذه الدالة القيمة true للإشارة إلى أنّه تمّ التعامل مع عملية التحميل، وتعرض القيمة false في الحالات الأخرى. | |
loadState(state) | لضبط حالة الحقل استنادًا إلى قيمة الحالة المحدّدة يجب ألا يتم استدعاؤه إلا من خلال نظام التسلسل. | |
onLocationChange(_) | إرسال إشعار إلى الحقل بأنّه تم تغيير المواقع الجغرافية | |
onMouseDown_(e) | protected |
معالجة حدث pointerdown في حقل |
onNodeBlur() | راجِع IFocusableNode.onNodeBlur. | |
onNodeFocus() | راجِع IFocusableNode.onNodeFocus. | |
onShortcut(_shortcut) | تعالج اختصار لوحة المفاتيح المحدّد. | |
positionBorderRect_() | protected |
تحديد موضع مستطيل حدود الحقل بعد تغيير حجمه |
positionTextElement_(xOffset, contentWidth) | protected |
تحديد موضع عنصر نص الحقل بعد تغيير حجمه يعالج هذا الإجراء موضع النص من اليمين إلى اليسار والعكس. |
referencesVariables() | ما إذا كان هذا الحقل يشير إلى أي متغيّرات في Blockly إذا كان صحيحًا، قد تحتاج إلى التعامل معه بشكل مختلف أثناء التسلسل وإزالة التسلسل. ويمكن أن تلغي الفئات الفرعية ذلك. | |
refreshVariableName() | أعِد تحميل اسم المتغيّر الذي يشير إليه هذا الحقل إذا كان هذا الحقل يشير إلى متغيّرات. | |
render_() | protected |
تُستخدَم دالة getSize() لتحريك أو تغيير حجم أي عناصر DOM والحصول على الحجم الجديد. يجب تنفيذ جميع عمليات التقديم التي تؤثّر في حجم/شكل الكتلة هنا، ويجب تشغيلها باستخدام getSize(). |
repositionForWindowResize() | عنصر ربط للمطوّر لإعادة وضع WidgetDiv أثناء تغيير حجم النافذة يجب تحديد هذا العنصر إذا كان الحقل يحتوي على WidgetDiv يحتاج إلى إعادة ضبط موضعه عند تغيير حجم النافذة. على سبيل المثال، تحدِّد حقول إدخال النصوص هذا العنصر الإضافي لكي يتمكّن WidgetDiv للّوحة إدخال من إعادة ضبط موضعه عند حدوث حدث تغيير حجم النافذة. وهذا مهم بشكل خاص عند إيقاف إدخالات النوافذ المنبثقة، لأنّ أجهزة Android ستُطلق حدث إعادة تغيير حجم النافذة عند فتح لوحة المفاتيح. إذا أردت إخفاء WidgetDiv بدلاً من إعادة وضعه، أعِد القيمة false. هذا هو السلوك التلقائي. تتعامل عناصر DropdownDiv مع منطق تحديد موضع عناصرها، لذا لا تحتاج إلى إلغاء هذه الوظيفة إذا كان الحقل يتضمّن عنصر DropdownDiv فقط. |
|
saveLegacyState(callingClass) | protected |
تعرِض هذه السمة نسخة من حالة XML تم تحويلها إلى سلسلة، إذا كان من المفترض استخدامها. بخلاف ذلك، يتم عرض القيمة null للإشارة إلى أنّ الحقل يجب أن يستخدم تسلسله الخاص. |
saveState(_doFullSerialization) | تُحفظ قيمة هذه الحقول كشيء يمكن تسلسله إلى تنسيق JSON. يجب ألا يتم استدعاؤه إلا من خلال نظام التسلسل. | |
setEnabled(enabled) | حدِّد ما إذا كان يمكن تغيير قيمة هذا الحقل باستخدام المحرِّر عندما تكون الكتلة المصدر قابلة للتعديل. | |
setSourceBlock(block) | إرفاق هذا الحقل بوحدة | |
setTooltip(newTip) | لضبط التلميح التعليمي لهذا الحقل | |
setValidator(handler) | تُستخدَم لضبط دالة التحقّق الجديدة للحقول القابلة للتعديل، أو لمحو مدقّق تم ضبطه سابقًا. تأخذ دالة المدقّق قيمة الحقل الجديدة، وتُرجع القيمة التي تم التحقّق منها. يمكن أن تكون القيمة التي تم التحقّق منها هي قيمة الإدخال أو نسخة معدَّلة من قيمة الإدخال أو قيمة فارغة لإلغاء التغيير. إذا لم تعرِض الدالة أيّ قيمة (أو عرَضت قيمة غير محدّدة)، يتم قبول القيمة الجديدة على أنّها صالحة. يهدف ذلك إلى السماح للحقول باستخدام الدالة التي تم التحقّق منها كإشعار لحدث تغيير على مستوى الحقل. |
|
setValue(newValue, fireChangeEvent) | تُستخدَم لتغيير قيمة الحقل. تعالج عمليات التحقّق من الصحة والأحداث. يجب أن تلغي الفئات الفرعية doClassValidation_ وdoValueUpdate_ بدلاً من هذه الطريقة. | |
showEditor_(_e) | protected |
عبارة تربط المطوّر لإنشاء محرِّر للحقل يكون هذا الخيار غير مفعّل تلقائيًا، ويجب إلغاؤه لإنشاء محرِّر. |
toXml(fieldElement) | تسلسل قيمة هذا الحقل إلى تنسيق XML يجب ألا يتم استدعاؤها إلا من خلال Blockly.Xml. | |
updateEditable() | أضِف واجهة المستخدم التي تشير إلى ما إذا كان هذا الحقل قابلاً للتعديل أم لا أو أزِلها. | |
updateSize_(margin) | protected |
تعديل حجم الحقل استنادًا إلى النص |