blockly > الحقل

حصة ميدانية

فئة تجريدية لحقل قابل للتعديل.

Signature:

export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable 

ينفّذ: IASTNodeLocationSvg وIASTNodeLocationWithBlock وIKeyboardAccessible وIRegistrable وISerializable

الشركات المصنِّعة

الشركة المصنِّعة مفاتيح التعديل الوصف
(Buildor)(value, validator, config) تنشئ هذه الدالة مثيلاً جديدًا من الفئة Field.

أماكن إقامة

الموقع مفاتيح التعديل Type الوصف
borderRect_ protected SVGRectElement | فارغ عنصر حدود SVG للحقل المعروض.
clickTarget_ protected العنصر | قيمة فارغة العنصر الذي يرتبط به معالج النقرات.
constants_ protected ConstantProvider | قيمة فارغة الثوابت المرتبطة بعارض مجموعة المصدر
المؤشر سلسلة نمط مؤشر الماوس عند تمريره فوق نقطة الاتصال التي تبدأ بدء المحرّر.
DEFAULT_VALUE T | لا شيء

لاستبدال القيمة التلقائية التي تم ضبطها في **الحقل**، عليك تعديل النموذج الأوّلي مباشرةً.

مثال: FieldImage.prototype.DEFAULT_VALUE = null;

قابل للتعديل boolean تعرض الحقول القابلة للتعديل عادةً نوعًا من واجهة المستخدم تشير إلى أنّها قابلة للتعديل. سيتم أيضًا حفظها من خلال المتسلسل.
enabled_ protected boolean هل يمكن تغيير قيمة الحقل باستخدام أداة التعديل في كتلة قابلة للتعديل؟
fieldGroup_ protected SVGGElement | فارغ عنصر مجموعة SVG للحقل المعروض
isDirty_ protected boolean هل يجب إعادة عرض هذه المجموعة؟
maxDisplayLength الرقم الحد الأقصى لعدد أحرف النص المطلوب عرضه قبل إضافة علامة حذف.
الاسم؟ سلسلة (اختياري) اسم الحقل فريد ضمن كل قطعة. عادةً ما تكون التسميات الثابتة بدون تسمية.
NBSP

static

readonly

(غير معلَن) مساحة غير منفصلة
قابل للعرض boolean يتم حفظ الحقول القابلة للتسلسل بواسطة التسلسل، والحقول غير القابلة للتسلسل. يجب أن تكون الحقول القابلة للتعديل أيضًا قابلة للتسلسل. هذا ليس هو الحال افتراضيًا بحيث تكون SERIALIZABLE متوافقة مع الأنظمة القديمة.
size_ protected الحجم
SKIP_SETUP

static

readonly

رمز فريد يشير ذلك المصطلح إلى قيمة تُستخدَم للإشارة إلى الوقت الذي يجب فيه *لا* تحدِّد الدالة الإنشائية للحقل قيمة الحقل أو تنفيذ Setup_ ، ويجب أن تسمح لفئة فرعية بذلك بدلاً من ذلك.
sourceBlock_ protected حظر | فارغ حظر هذا الحقل مرفق به. تبدأ بقيمة خالية، ثم يتم تعيينها في init.
textContent_ protected نص | قيمة فارغة عنصر المحتوى النصي للحقل المعروض.
textElement_ protected SVGTextElement | فارغ العنصر النصي SVG للحقل المعروض
validator_ protected FieldValidator<T> | قيمة فارغة يتم استدعاء وظيفة التحقق من الصحة عندما يعدّل المستخدم حقلاً قابلاً للتعديل.
value_ protected T | لا شيء
visible_ protected boolean هل الحقل مرئي أو مخفي بسبب تصغير الكتلة؟

الطُرق

الطريقة مفاتيح التعديل الوصف
applyColour()

يتم تعديل الحقل ليلائم لون أو نمط القطعة.

قد ترغب الفئات الفرعية غير المجردة في تنفيذ ذلك إذا كان لون الحقل يعتمد على لون القطعة. وسيتم طلبها تلقائيًا في الأوقات المناسبة، مثلاً عند تغيير المجموعة الرئيسية أو العارض.

يمكنك الاطّلاع على مستندات الحقول للحصول على مزيد من المعلومات، أو الاطّلاع على الحقل "قائمة منسدلة" للحصول على مثال.

bindEvents_() protected ربط الأحداث بالحقل. يمكن إلغاء هذا الإعداد من خلال الفئات الفرعية إذا كانت بحاجة إلى إجراء معالجة مخصصة للإدخالات.
configure_(config) protected معالجة خريطة الضبط التي تم تمريرها إلى الحقل
createBorderRect_() protected أنشئ عنصر مستطيل لحدود الحقل. يجب ألا يتم تجاوزها بواسطة الفئات الفرعية. بدلاً من ذلك، يمكنك تعديل نتيجة الدالة داخل initView، أو إنشاء دالة منفصلة لطلبها.
createTextElement_() protected أنشئ عنصرًا نصيًا للحقل. يجب ألا يتم تجاوزها بواسطة الفئات الفرعية. بدلاً من ذلك، يمكنك تعديل نتيجة الدالة داخل initView، أو إنشاء دالة منفصلة لطلبها.
doClassValidation_(newValue) protected

تحقَّق من صحة التغييرات التي تم إجراؤها على قيمة الحقل قبل ضبطها. راجِع **FieldDropdown** للحصول على مثال على تنفيذ الفئة الفرعية.

**ملاحظة:** تعرض عملية التحقّق خيارًا واحدًا بين T وnull وundefined. لن يؤدي تنفيذ **الحقل** مطلقًا إلى عرض القيمة undefined، ولكنه صالح للفئة الفرعية لعرض القيمة undefined إذا كانت القيمة الجديدة متوافقة مع T.

doClassValidation_(newValue) protected
doValueInvalid_(_invalidValue) protected يتم استخدامه لإشعار الحقل بأنه تم إدخال قيمة غير صالحة. يمكن تجاوزها بواسطة الفئات الفرعية، راجع FieldTextInput. بيئة مستقلة.
doValueUpdate_(newValue) protected تُستخدَم لتعديل قيمة أحد الحقول. يمكن تجاوزها من خلال الفئات الفرعية لإجراء تخزين مخصص لقيم/تحديث عناصر خارجية.
getAbsoluteXY_() protected اعرض الإحداثيات المطلقة بأعلى اليسار في هذا الحقل. المصدر (0,0) هو أعلى يمين نص الصفحة.
getBorderRect() protected للحصول على عنصر مستطيل الحدود.
getClickTarget_() protected العنصر المطلوب ربط معالج النقرات به وفي حال عدم ضبطها بشكل صريح، سيتم ضبطها تلقائيًا على جذر SVG للحقل. عند النقر على هذا العنصر في حقل قابل للتعديل، سيتم فتح المحرر.
getConstants() الحصول على مقدّم خدمات العرض الثابت
getDisplayText_() protected احصل على النص من هذا الحقل لعرضه على القطعة. قد يختلف عن getText بسبب علامة الحذف والتنسيقات الأخرى.
getFlipRtl() تعرض ما إذا كان علينا قلب الحقل في اليمين أم لا.
getSize()

لعرض ارتفاع الحقل وعرضه.

ومن المفترض أن يكون هذا *عمومًا* هو المكان الوحيد الذي يتم طلب عرض_ منه.

getSourceBlock() احصل على المجموعة التي تم إرفاق هذا الحقل بها.
getSvgRoot() تحصل على عنصر المجموعة لهذا الحقل القابل للتعديل. يُستخدم لقياس الحجم وتحديد الموضع.
getText_() protected ميزة جذب للمطوِّر لإلغاء النص المعروض في هذا الحقل يمكنك الإلغاء إذا كان التمثيل النصي لقيمة هذا الحقل ليس مجرد تمثيل سلسلة لقيمته. قم بإعادة قيمة فارغة إلى اللجوء إلى تحويل سلسلة.
getText() احصل على النص من هذا الحقل. يمكنك تجاوز getText_ لتقديم سلوك مختلف عن مجرد إرسال القيمة إلى سلسلة.
getTextContent() protected الحصول على المحتوى النصي.
getTextElement() protected يتم الحصول على العنصر النصي.
getTooltip() عرض نص التلميح لهذا الحقل.
getValidator() للحصول على دالة التحقق من صحة الحقول القابلة للتعديل، أو قيمة فارغة إذا لم يتم ضبطها.
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, content width) protected وضع العنصر النصي للحقل بعد تغيير الحجم. يشمل ذلك تحديد موضعَي LTR وRTL.
render_() protected

يُستخدم بواسطة getSize() لنقل/تغيير حجم أي عناصر DOM والحصول على الحجم الجديد.

ويجب تنفيذ جميع عمليات العرض التي تؤثر على حجم/شكل الكتلة هنا، ويجب تشغيلها باستخدام getSize().

repositionForWindowResize()

عنصر جذب للمطوّر لإعادة ضبط موضع WidgetDiv أثناء تغيير حجم النافذة. تحتاج إلى تعريف هذا الخطاف إذا كان الحقل يحتوي على WidgetDiv يحتاج إلى تغيير موضعه عند تغيير حجم النافذة. على سبيل المثال، تُحدد حقول إدخال النص هذا العنصر حتى يتمكن عنصر WidgetDiv للإدخال من تغيير موضعه في حدث تغيير حجم النافذة. ويحظى هذا الأمر بأهمية خاصة عند إيقاف الإدخالات المشروطة، لأنّ أجهزة Android ستطلق حدث تغيير حجم النافذة عند فتح لوحة المفاتيح المشروطة.

إذا كنت تريد أن تخفي أداة WidgetDiv نفسها بدلاً من تغيير الموضع، يمكنك عرض القيمة false. وهذا هو الخيار التلقائي.

تعالج DropdownDivs حاليًا منطق تحديد الموضع الخاص بها، لذلك لن تحتاج إلى إلغاء هذه الدالة إذا كان الحقل لا يحتوي إلا على DropdownDiv.

saveLegacyState(callingClass) protected تعرض نسخة نصية من حالة XML، إذا كان يجب استخدامها. وبخلاف ذلك، يؤدي هذا إلى إرجاع فارغ، للإشارة إلى أن الحقل يجب أن يستخدم التسلسل الخاص به.
setEnabled(enabled) اضبط ما إذا كان يمكن تغيير قيمة هذا الحقل باستخدام المحرِّر عندما يكون كتلة المصدر قابلاً للتعديل.
setSourceBlock(block) أرفِق هذا الحقل بجزء.
setTooltip(newTip) تعمل على ضبط التلميح المتعلّق بهذا الحقل.
setValidator(handler)

لضبط دالة تحقّق جديدة للحقول القابلة للتعديل، أو محو أداة التحقّق التي تم إعدادها سابقًا

تستخدم دالة المدقق قيمة الحقل الجديدة، وتعرض القيمة التي تم التحقق من صحتها. قد تكون القيمة التي تم التحقّق من صحتها هي قيمة الإدخال أو نسخة معدّلة من قيمة الإدخال أو قيمة فارغة لإلغاء التغيير.

إذا لم ترجع الدالة أي شيء (أو تعرض غير محدد)، يتم قبول القيمة الجديدة كصالحة. ويسمح هذا الإجراء للحقول التي تستخدم الدالة التي تم التحقّق من صحتها كإشعار بحدث تغيير على مستوى الحقل.

setValue(newValue, fireChangeEvent) يُستخدَم لتغيير قيمة الحقل. تتعامل مع عمليات التحقّق من الصحة والأحداث. يجب أن تتجاوز الفئات الفرعية doClassServiceation_ وdoValueUpdate_ بدلاً من هذه الطريقة.
showEditor_(_e) protected عنصر جذب للمطوّر لإنشاء محرّر للحقل هذه هي بيئة مستقلة تلقائيًا، ويجب تجاوزها لإنشاء محرر.
updateEditable() أضِف أو أزِل واجهة المستخدم التي تشير إلى ما إذا كان هذا الحقل قابلاً للتعديل أم لا.
updateSize_(margin) protected تُعدِّل حجم الحقل استنادًا إلى النص.