फ़ील्ड क्लास
बदलाव किए जा सकने वाले फ़ील्ड के लिए ऐब्सट्रैक्ट क्लास.
हस्ताक्षर:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
लागू करने की सुविधा: IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
कंस्ट्रक्टर
निर्माता | मॉडिफ़ायर | ब्यौरा |
---|---|---|
(कंस्ट्रक्टर)(वैल्यू, पुष्टि करने वाला, कॉन्फ़िगरेशन) | Field क्लास का एक नया इंस्टेंस बनाता है |
प्रॉपर्टी
प्रॉपर्टी | मॉडिफ़ायर | टाइप | ब्यौरा |
---|---|---|---|
borderRect_ | protected |
SVGRect एलिमेंट | शून्य | रेंडर किए गए फ़ील्ड का SVG बॉर्डर एलिमेंट. |
clickTarget_ | protected |
एलिमेंट | शून्य | क्लिक हैंडलर जिस एलिमेंट से जुड़ा है. |
constants_ | protected |
ConstantProvider | शून्य | सोर्स ब्लॉक के रेंडरर से जुड़े कॉन्सटैंट. |
कर्सर | स्ट्रिंग | कर्सर की स्टाइल को उस हॉटस्पॉट के ऊपर रखें जिससे एडिटर शुरू होता है. | |
DEFAULT_VALUE | T | शून्य | **फ़ील्ड** में सेट की गई डिफ़ॉल्ट वैल्यू को ओवरराइट करने के लिए, सीधे प्रोटोटाइप को अपडेट करें. उदाहरण: |
|
बदलाव किया जा सकता है | boolean | आम तौर पर, बदलाव किए जा सकने वाले फ़ील्ड में कुछ तरह का यूज़र इंटरफ़ेस (यूआई) दिखता है. इससे पता चलता है कि उनमें बदलाव किया जा सकता है. इन्हें सीरियलाइज़र की मदद से भी सेव किया जाएगा. | |
enabled_ | protected |
boolean | क्या बदलाव करने लायक ब्लॉक पर, एडिटर का इस्तेमाल करके फ़ील्ड की वैल्यू को बदला जा सकता है? |
fieldGroup_ | protected |
SVGG एलिमेंट | शून्य | रेंडर किए गए फ़ील्ड का SVG ग्रुप एलिमेंट. |
isDirty_ | protected |
boolean | क्या इस ब्लॉक को फिर से रेंडर करना होगा? |
maxDisplayLength | नंबर | एलिप्सिस जोड़ने से पहले, टेक्स्ट में दिखाए जाने वाले ज़्यादा से ज़्यादा वर्ण. | |
नाम? | स्ट्रिंग | (ज़रूरी नहीं) फ़ील्ड का नाम. हर ब्लॉक में यूनीक. स्टैटिक लेबल का नाम नहीं रखा जाता. | |
एनबीएसपी |
|
(घोषित नहीं किया गया) | नॉन-ब्रेकिंग स्पेस. |
क्रम से लगाया जा सकता है | boolean | सीरियल के हिसाब से बनाए जा सकने वाले फ़ील्ड, सीरियलाइज़र की मदद से सेव किए जाते हैं, लेकिन क्रम से न लगाए जा सकने वाले फ़ील्ड को नहीं. बदलाव किए जा सकने वाले फ़ील्ड, सीरियल के हिसाब से भी होने चाहिए. डिफ़ॉल्ट रूप से ऐसा नहीं होता है, इसलिए SERIALIZABLE पुराने सिस्टम के साथ काम करता है. | |
size_ | protected |
साइज़ | |
SKIP_SETUP |
|
खास चिह्न | यह सिग्नल के लिए इस्तेमाल की जाने वाली वैल्यू है, क्योंकि फ़ील्ड के कंस्ट्रक्टर को फ़ील्ड की वैल्यू सेट *नहीं* करनी चाहिए याconfig_ नहीं चलाना चाहिए. साथ ही, सब-क्लास को ऐसा करने की अनुमति देनी चाहिए. |
sourceBlock_ | protected |
ब्लॉक करना | शून्य | ब्लॉक करें, यह फ़ील्ड अटैच है. शून्य के तौर पर शुरू होता है, फिर init में सेट करें. |
textContent_ | protected |
टेक्स्ट | शून्य | रेंडर किए गए फ़ील्ड का टेक्स्ट कॉन्टेंट एलिमेंट. |
textElement_ | protected |
SVGTextElement | शून्य | रेंडर किए गए फ़ील्ड का SVG टेक्स्ट एलिमेंट. |
validator_ | protected |
FieldValidator<T> | शून्य | जब उपयोगकर्ता किसी बदलाव किए जा सकने वाले फ़ील्ड में बदलाव करता है, तब पुष्टि करने वाला फ़ंक्शन कॉल किया जाता है. |
value_ | protected |
T | शून्य | |
visible_ | protected |
boolean | क्या ब्लॉक को छोटा किए जाने की वजह से, फ़ील्ड दिख रहा है या छिपा हुआ है? |
तरीके
तरीका | मॉडिफ़ायर | ब्यौरा |
---|---|---|
applyColour() | ब्लॉक के रंग/स्टाइल से मैच करने के लिए, फ़ील्ड को अपडेट करता है. अगर फ़ील्ड का रंग ब्लॉक के रंग पर निर्भर करता है, तो नॉन-ऐब्स्ट्रैक्ट सब-क्लास में इसे लागू किया जा सकता है. इसे सही समय पर अपने-आप कॉल कर लिया जाएगा. जैसे, पैरंट ब्लॉक या रेंडरर में बदलाव होने पर. ज़्यादा जानकारी के लिए, फ़ील्ड का दस्तावेज़ या उदाहरण के लिए Fieldड्रॉपडाउन देखें. |
|
bindEvents_() | protected |
इवेंट को फ़ील्ड में बाइंड करें. सब-क्लास को कस्टम इनपुट हैंडल करने की ज़रूरत होने पर, इसे बदला जा सकता है. |
configure_(config) | protected |
फ़ील्ड में भेजे गए कॉन्फ़िगरेशन मैप को प्रोसेस करें. |
createBorderRect_() | protected |
फ़ील्ड बॉर्डर रेक्ट एलिमेंट बनाएं. सब-क्लास से ओवरराइड नहीं होना चाहिए. इसके बजाय, initView के अंदर फ़ंक्शन के नतीजे को बदलें या कॉल करने के लिए एक अलग फ़ंक्शन बनाएं. |
createTextElement_() | protected |
फ़ील्ड टेक्स्ट एलिमेंट बनाएं. सब-क्लास से ओवरराइड नहीं होना चाहिए. इसके बजाय, initView के अंदर फ़ंक्शन के नतीजे को बदलें या कॉल करने के लिए एक अलग फ़ंक्शन बनाएं. |
doClassValidation_(newValue) | protected |
फ़ील्ड की वैल्यू सेट करने से पहले, उसमें किए गए बदलावों की पुष्टि करें. सब-क्लास लागू करने के उदाहरण के लिए, **Fieldड्रॉपडाउन** देखें. **ध्यान दें:** पुष्टि करने की सुविधा की मदद से, |
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() | फ़ील्ड की ऊंचाई और चौड़ाई दिखाता है. *आम तौर पर* यही एक ऐसी जगह होनी चाहिए जहां से रेंडरिंग_ को कॉल किया जा सकता है. |
|
getSourceBlock() | वह ब्लॉक पाएं जिससे यह फ़ील्ड जुड़ा है. | |
getSvgRoot() | बदलाव किए जा सकने वाले इस फ़ील्ड के लिए ग्रुप एलिमेंट की जानकारी मिलती है. इसका इस्तेमाल, साइज़ मापने और पोज़िशन (पोज़िशनिंग) तय करने के लिए किया जाता है. | |
getText_() | protected |
इस फ़ील्ड के लौटाए गए टेक्स्ट को बदलने के लिए डेवलपर हुक. अगर इस फ़ील्ड की वैल्यू का टेक्स्ट, सिर्फ़ वैल्यू की स्ट्रिंग कास्ट न हो, तो यह सेटिंग लागू करें. स्ट्रिंग कास्ट का रिज़ॉर्ट बनाने के लिए 'शून्य' दिखाना. |
getText() | इस फ़ील्ड से टेक्स्ट पाएं. किसी स्ट्रिंग पर वैल्यू कास्ट करने के बजाय, एक अलग व्यवहार देने के लिए getText_ को ओवरराइड करें. | |
getTextContent() | protected |
टेक्स्ट कॉन्टेंट मिलता है. |
getTextElement() | protected |
टेक्स्ट एलिमेंट पाता है. |
getTooltip() | इस फ़ील्ड के लिए टूलटिप टेक्स्ट दिखाता है. | |
getValidator() | बदलाव किए जा सकने वाले फ़ील्ड के लिए, पुष्टि करने वाला फ़ंक्शन पाता है या सेट न होने पर शून्य दिखाता है. | |
getValue() | फ़ील्ड की मौजूदा वैल्यू पाएं. | |
initModel() | ब्लॉक पर इंस्टॉल होने के बाद, फ़ील्ड के मॉडल को शुरू करता है. डिफ़ॉल्ट रूप से कोई बटन नहीं होता. | |
initView() | protected |
इस फ़ील्ड के लिए 'ब्लॉक करें' यूज़र इंटरफ़ेस (यूआई) बनाएं. |
isClickable() | देखें कि यह फ़ील्ड ShowEditor_ फ़ंक्शन के बारे में बताता है या नहीं. | |
isClickableInFlyout(autoClosingFlyout) | जांचें कि ब्लॉक के फ़्लायआउट में होने पर फ़ील्ड पर क्लिक किया जा सकता है या नहीं. डिफ़ॉल्ट रूप से, फ़ील्ड पर हमेशा खुलने वाले फ़्लायआउट में क्लिक किया जा सकता है, जैसे कि सिंपल टूलबॉक्स में, लेकिन कैटगरी टूलबॉक्स जैसे अपने-आप बंद होने वाले फ़्लायआउट में क्लिक नहीं किए जा सकते. सब-क्लास, इस व्यवहार को बदलने के लिए इस फ़ंक्शन को बदल सकती हैं. ध्यान दें कि इसका कोई असर डालने के लिए, isClickable को 'सही' दिखाना भी ज़रूरी है. |
|
isCurrentlyEditable() | देखें कि क्या इस फ़ील्ड में फ़िलहाल बदलाव किया जा सकता है. कुछ फ़ील्ड में कभी भी बदलाव नहीं किया जा सकता (जैसे कि टेक्स्ट लेबल). अन्य फ़ील्ड में बदलाव किए जा सकते हैं. हालांकि, वे ऐसे ब्लॉक पर मौजूद हो सकते हैं जिनमें बदलाव नहीं किया जा सकता. इसके अलावा, हो सकता है कि वे फ़िलहाल बंद हों. | |
isEnabled() | यह जांचें कि सोर्स ब्लॉक में बदलाव किए जा सकने की स्थिति में, एडिटर का इस्तेमाल करके इस फ़ील्ड की वैल्यू को बदला जा सकता है या नहीं. | |
isFullBlockField() | protected |
इससे यह तय होता है कि इस फ़ील्ड को पूरा ब्लॉक लेना चाहिए या नहीं. इस फ़ंक्शन को बदलते समय सावधानी बरतें. ऐसा हो सकता है कि यह आपकी उम्मीद के मुताबिक काम न करे या इसे रद्द करने का मकसद पूरा न हो. ऐसा इसलिए, क्योंकि इस तरह की गतिविधियां हैक की गई थीं. अगर आपको इस फ़ंक्शन को बदलना है, तो फ़ोरम पर पोस्ट करके देखें कि क्या कोई दूसरा तरीका है. |
isSerializable() | देखें कि एक्सएमएल रेंडरर ने इस फ़ील्ड को सीरीज़ के तौर पर सेट किया है या नहीं. पुराने सिस्टम के साथ काम करने की क्षमता और बेमेल स्थितियों के लॉजिक को हैंडल करता है. | |
isTabNavigable() | यह दिखाता है कि फ़ील्ड पर, टैब नेविगेट किया जा सकता है या नहीं. | |
isVisible() | जानकारी मिलती है कि बदलाव किया जा सकने वाला यह फ़ील्ड दिख रहा है या नहीं. | |
loadLegacyState(callingClass, state) | अगर पुराने एक्सएमएल हुक का इस्तेमाल किया जाना चाहिए, तो उनका इस्तेमाल करके दी गई स्थिति को लोड करता है. 'सही' दिखाता है. इससे पता चलता है कि लोडिंग हैंडल की गई है, नहीं तो 'गलत' दिखाता है. | |
onLocationChange(_) | उस फ़ील्ड को सूचना देता है जिसमें जगह बदल गई है. | |
onMouseDown_(e) | protected |
किसी फ़ील्ड पर पॉइंटरडाउन इवेंट मैनेज करना. |
onShortcut(_shortcut) | दिए गए कीबोर्ड शॉर्टकट को हैंडल करता है. | |
positionBorderRect_() | protected |
साइज़ में बदलाव के बाद, फ़ील्ड के बॉर्डर रेक्टैंगल को पोज़िशन करें. |
positionTextElement_(xoffset, contentwidth) | protected |
साइज़ बदलने के बाद, फ़ील्ड के टेक्स्ट एलिमेंट को पोज़िशन करें. यह एलटीआर और आरटीएल पोज़िशनिंग, दोनों को हैंडल करता है. |
render_() | protected |
इसका इस्तेमाल किसी भी डीओएम एलिमेंट को मूव/साइज़ करने और नया साइज़ पाने के लिए, getSize() की मदद से किया जाता है. ब्लॉक के साइज़/आकार पर असर डालने वाली सभी रेंडरिंग यहां की जानी चाहिए. साथ ही, उसे getSize() से ट्रिगर किया जाना चाहिए. |
repositionForWindowResize() | विंडो का साइज़ बदलने के दौरान, WidgetDiv की जगह बदलने के लिए डेवलपर हुक. अगर आपके फ़ील्ड में ऐसा WidgetDiv है जिसे विंडो का साइज़ बदलने पर, अपनी जगह बदलने की ज़रूरत है, तो आपको यह हुक तय करना होगा. उदाहरण के लिए, टेक्स्ट इनपुट फ़ील्ड इस हुक को परिभाषित करते हैं, ताकि इनपुट WidgetDiv विंडो का साइज़ बदलने वाले इवेंट पर खुद को अपनी जगह बदल सके. यह खास तौर पर तब ज़रूरी होता है, जब मॉडल इनपुट बंद हों. इसकी वजह यह है कि Android डिवाइस, सॉफ़्ट कीबोर्ड के खुलने पर विंडो का साइज़ बदलने वाला इवेंट ट्रिगर करेंगे. अगर आप चाहते हैं कि WidgetDiv उनकी जगह बदलने के बजाय खुद को छिपाए, तो 'गलत' पर सेट हो जाएगा. यह डिफ़ॉल्ट व्यवहार है. ड्रॉपडाउन डिव्स पहले से अपना खुद का पोज़िशनिंग लॉजिक मैनेज करता है. इसलिए, अगर आपके फ़ील्ड में सिर्फ़ ड्रॉपडाउन डीव है, तो आपको इस फ़ंक्शन को बदलने की ज़रूरत नहीं है. |
|
saveLegacyState(callingClass) | protected |
अगर एक्सएमएल की स्थिति का इस्तेमाल किया जाना चाहिए, तो इसका स्ट्रिंग वाला वर्शन दिखाता है. अगर ऐसा नहीं है, तो यह शून्य दिखाता है. इसलिए, सिग्नल देने के लिए फ़ील्ड को अपने खुद के सीरियलाइज़ेशन का इस्तेमाल करना चाहिए. |
setEnabled(enabled) | सेट करें कि सोर्स ब्लॉक में बदलाव किए जा सकने पर, एडिटर का इस्तेमाल करके इस फ़ील्ड की वैल्यू को बदला जा सकता है या नहीं. | |
setSourceBlock(block) | इस फ़ील्ड को किसी ब्लॉक में अटैच करें. | |
setTooltip(newTip) | इस फ़ील्ड के लिए टूलटिप सेट करता है. | |
setValidator(handler) | बदलाव किए जा सकने वाले फ़ील्ड के लिए, पुष्टि करने का नया फ़ंक्शन सेट करता है या पहले से सेट किए गए पुष्टि करने वाले प्रोग्राम को हटाता है. पुष्टि करने वाला फ़ंक्शन, फ़ील्ड की नई वैल्यू शामिल करता है और पुष्टि की गई वैल्यू दिखाता है. इनपुट वैल्यू, इनपुट वैल्यू का बदला गया वर्शन या बदलाव को रद्द करने के लिए शून्य हो, जिसकी पुष्टि की गई वैल्यू हो. अगर फ़ंक्शन कोई वैल्यू नहीं दिखाता है (या तय नहीं है), तो नई वैल्यू को मान्य के तौर पर स्वीकार कर लिया जाता है. ऐसा इसलिए किया जाता है, ताकि फ़ील्ड-लेवल पर बदलाव की सूचना पाने की सुविधा के तौर पर, पुष्टि किए गए फ़ंक्शन का इस्तेमाल किया जा सके. |
|
setValue(newValue, fireChangeEvent) | इसका इस्तेमाल, फ़ील्ड की वैल्यू बदलने के लिए किया जाता है. पुष्टि और इवेंट मैनेज करता है. सब-क्लास को इस तरीके के बजाय, doClassValidation_ और doValueUpdate_ को बदलना चाहिए. | |
showEditor_(_e) | protected |
फ़ील्ड का एडिटर बनाने के लिए डेवलपर हुक. यह डिफ़ॉल्ट रूप से ऑपरेट नहीं होता. एडिटर बनाने के लिए, इसे ओवरराइड करना होगा. |
updateEditable() | वह यूज़र इंटरफ़ेस (यूआई) जोड़ें या हटाएं जिससे यह पता चलता है कि इस फ़ील्ड में बदलाव किया जा सकता है या नहीं. | |
updateSize_(margin) | protected |
टेक्स्ट के हिसाब से फ़ील्ड का साइज़ अपडेट करता है. |