کلاس میدانی
کلاس انتزاعی برای یک فیلد قابل ویرایش.
امضا:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
پیاده سازی: IASTNodeLocationSvg ، IASTNodeLocationWithBlock , IKeyboardAccessible ، قابل ثبت است ISerializable
سازندگان
سازنده | اصلاح کننده ها | توضیحات |
---|---|---|
(سازنده) (مقدار، اعتبار سنج، پیکربندی) | یک نمونه جدید از کلاس Field می سازد |
خواص
اموال | اصلاح کننده ها | تایپ کنید | توضیحات |
---|---|---|---|
borderRect_ | protected | SVGRectElement | تهی | عنصر حاشیه SVG فیلد رندر شده. |
کلیک هدف_ | protected | عنصر | تهی | عنصری که کنترل کننده کلیک به آن متصل است. |
ثابت_ | protected | ConstantProvider | تهی | ثابت های مرتبط با رندر بلوک منبع. |
مکان نما | رشته | سبک مکاننمای ماوس در زمانی که روی نقطه اتصالی که ویرایشگر را شروع میکند قرار میگیرد. | |
DEFAULT_VALUE | T | تهی | برای بازنویسی مقدار پیشفرض که در **فیلد** تنظیم شده است، مستقیماً نمونه اولیه را بهروزرسانی کنید. مثال: | |
قابل ویرایش | بولی | فیلدهای قابل ویرایش معمولاً نوعی رابط کاربری را نشان می دهند که نشان می دهد قابل ویرایش هستند. آنها همچنین توسط سریال ساز ذخیره می شوند. | |
فعال_ | protected | بولی | آیا می توان مقدار فیلد را با استفاده از ویرایشگر روی یک بلوک قابل ویرایش تغییر داد؟ |
fieldGroup_ | protected | SVGGElement | تهی | عنصر گروه SVG فیلد رندر شده. |
کثیف است_ | protected | بولی | آیا این بلوک نیاز به رندر مجدد دارد؟ |
maxDisplayLength | شماره | حداکثر کاراکترهای متن برای نمایش قبل از افزودن بیضی. | |
نام؟ | رشته | (اختیاری) نام فیلد. منحصر به فرد در هر بلوک. برچسب های استاتیک معمولاً بدون نام هستند. | |
NBSP | | (اعلام نشده) | فضای بدون شکستگی. |
قابل سریال سازی | بولی | فیلدهای قابل سریالسازی توسط سریالساز ذخیره میشوند، فیلدهای غیرقابل سریالسازی ذخیره نمیشوند. فیلدهای قابل ویرایش نیز باید سریال شوند. این مورد به طور پیشفرض نیست، بنابراین SERIALIZABLE با عقب سازگار است. | |
اندازه_ | protected | اندازه | |
SKIP_SETUP | | نماد منحصر به فرد | زمانی که سازنده یک فیلد نباید مقدار فیلد را *نباید* تنظیم کند یا configure_ را اجرا کند، برای سیگنال دادن استفاده میشود و باید به یک کلاس فرعی اجازه دهد که این کار را انجام دهد. |
sourceBlock_ | protected | بلوک | تهی | مسدود کردن این فیلد به آن پیوست شده است. به صورت null شروع می شود، سپس در init تنظیم می شود. |
متن محتوا_ | protected | متن | تهی | عنصر محتوای متنی فیلد رندر شده. |
textElement_ | protected | SVGTextElement | تهی | عنصر متنی SVG فیلد ارائه شده. |
اعتباردهنده_ | protected | Field Validator <T> | تهی | هنگامی که کاربر یک فیلد قابل ویرایش را ویرایش می کند، تابع اعتبارسنجی فراخوانی می شود. |
ارزش_ | protected | T | تهی | |
قابل مشاهده_ | protected | بولی | آیا فیلد به دلیل جمع شدن بلوک قابل مشاهده است یا پنهان است؟ |
روش ها
روش | اصلاح کننده ها | توضیحات |
---|---|---|
applyColor() | فیلد را برای مطابقت با رنگ/سبک بلوک به روز می کند. اگر رنگ فیلد به رنگ بلوک بستگی داشته باشد، کلاسهای فرعی غیرانتزاعی ممکن است بخواهند این را پیادهسازی کنند. به طور خودکار در زمان های مربوطه فراخوانی می شود، مانند زمانی که بلوک والد یا رندر تغییر می کند. برای اطلاعات بیشتر به مستندات فیلد یا برای مثال FieldDropdown مراجعه کنید. | |
bindEvents_() | protected | رویدادها را به میدان پیوند دهید. در صورت نیاز به انجام مدیریت ورودی سفارشی، میتوان توسط کلاسهای فرعی نادیده گرفت. |
configure_(config) | protected | نقشه پیکربندی ارسال شده به فیلد را پردازش کنید. |
createBorderRect_() | protected | یک عنصر حاشیه درست درست کنید. نباید توسط زیر کلاسها نادیده گرفته شود. در عوض نتیجه تابع را در داخل initView تغییر دهید یا یک تابع جداگانه برای فراخوانی ایجاد کنید. |
createTextElement_() | protected | یک عنصر متن فیلد ایجاد کنید. نباید توسط زیر کلاسها نادیده گرفته شود. در عوض نتیجه تابع را در داخل initView تغییر دهید یا یک تابع جداگانه برای فراخوانی ایجاد کنید. |
doClassValidation_(newValue) | protected | تغییرات مربوط به مقدار یک فیلد را قبل از تنظیم اعتبارسنجی کنید. برای مثالی از اجرای زیر کلاس، **FieldDropdown** را ببینید. **توجه:** اعتبارسنجی یک گزینه را بین |
doClassValidation_(newValue) | protected | |
doValueInvalid_(_invalidValue، _fireChangeEvent) | protected | برای اطلاع دادن به فیلد، مقدار نامعتبری وارد شده است. میتواند توسط زیر کلاسها لغو شود، به FieldTextInput مراجعه کنید. No-op به طور پیش فرض. |
doValueUpdate_(newValue) | protected | برای به روز رسانی مقدار یک فیلد استفاده می شود. برای ذخیره سازی سفارشی مقادیر/به روز رسانی چیزهای خارجی می توان آن را با زیر کلاس ها لغو کرد. |
fromJson(_options) | static | کلاسهای فرعی باید این روش را دوباره پیادهسازی کنند تا زیرکلاس Field خود را از یک شی arg JSON بسازند. اگر آن کلاس فرعی این روش را لغو نکرده باشد، تلاش برای ثبت یک زیر کلاس فیلد در FieldRegistry یک خطا است. |
getAbsoluteXY_() | protected | مختصات مطلق گوشه سمت چپ بالای این فیلد را برگردانید. مبدا (0,0) گوشه سمت چپ بالای بدنه صفحه است. |
getBorderRect() | protected | عنصر مستطیل حاشیه را دریافت می کند. |
getClickTarget_() | protected | عنصری که باید کنترل کننده کلیک به آن متصل شود. اگر به صراحت تنظیم نشده باشد، به طور پیش فرض روی ریشه SVG فیلد تنظیم می شود. هنگامی که این عنصر روی یک فیلد قابل ویرایش کلیک می شود، ویرایشگر باز می شود. |
getConstants() | ارائه دهنده ثابت رندر را دریافت کنید. | |
getDisplayText_() | protected | متن را از این قسمت دریافت کنید تا در بلوک نمایش داده شود. ممکن است به دلیل بیضی بودن و سایر قالب بندی ها با getText متفاوت باشد. |
getFlipRtl() | نشان می دهد که آیا باید فیلد را در RTL برگردانیم یا نه. | |
getSize() | ارتفاع و عرض فیلد را برمیگرداند. این باید *به طور کلی* تنها جایی باشد که render_ از آن فراخوانی می شود. | |
getSourceBlock() | بلوکی که این فیلد به آن پیوست شده است را دریافت کنید. | |
getSvgRoot() | عنصر گروه را برای این فیلد قابل ویرایش دریافت می کند. برای اندازه گیری اندازه و موقعیت یابی استفاده می شود. | |
getText_() | protected | یک قلاب توسعه دهنده برای لغو متن برگشتی این فیلد. اگر نمایش متنی مقدار این فیلد فقط یک رشته از مقدار آن نباشد، لغو کنید. برای متوسل شدن به بازیگری رشته ای، null را برگردانید. |
getText() | متن را از این قسمت دریافت کنید. برای ارائه رفتاری متفاوت از ارسال مقدار به یک رشته، getText_ را لغو کنید. | |
getTextContent() | protected | محتوای متن را دریافت می کند. |
getTextElement() | protected | عنصر متن را دریافت می کند. |
getTooltip() | متن راهنمای ابزار را برای این فیلد برمیگرداند. | |
getValidator() | تابع اعتبارسنجی را برای فیلدهای قابل ویرایش دریافت می کند، یا اگر تنظیم نشده باشد، null می شود. | |
getValue() | مقدار فعلی فیلد را بدست آورید. | |
initModel() | مدل فیلد را پس از نصب روی یک بلوک مقداردهی اولیه می کند. No-op به طور پیش فرض. | |
initView() | protected | بلوک UI را برای این فیلد ایجاد کنید. |
isClickable() | بررسی کنید که آیا این فیلد تابع showEditor_ را تعریف می کند یا خیر. | |
isClickableInFlyout (autoClosingFlyout) | بررسی کنید که آیا در زمانی که بلوک در حال پرواز است، فیلد باید قابل کلیک باشد یا خیر. پیشفرض این است که فیلدها در فلایآوتهای همیشه باز مانند جعبه ابزار ساده قابل کلیک هستند، اما در قسمتهای بسته شدن خودکار مانند جعبه ابزار دستهبندی قابل کلیک نیستند. کلاس های فرعی ممکن است این تابع را لغو کنند تا این رفتار را تغییر دهند. توجه داشته باشید که isClickable نیز باید مقدار true را برگرداند تا تاثیری داشته باشد. | |
isCurrentlyEditable() | بررسی کنید که آیا این فیلد در حال حاضر قابل ویرایش است یا خیر. برخی از فیلدها هرگز قابل ویرایش نیستند (مثلاً برچسب های متنی). فیلدهای دیگر ممکن است EDITABLE باشند اما ممکن است در بلوک های غیر قابل ویرایش وجود داشته باشند یا در حال حاضر غیرفعال باشند. | |
isEnabled() | بررسی کنید که آیا مقدار این فیلد را می توان با استفاده از ویرایشگر تغییر داد، زمانی که بلوک منبع قابل ویرایش است. | |
isFullBlockField() | protected | مشخص می کند که آیا این فیلد باید کل بلوک را اشغال کند یا خیر. هنگام نادیده گرفتن این عملکرد محتاط باشید. ممکن است آنطور که شما انتظار دارید / قصد دارید کار نکند زیرا رفتار به نوعی هک شده است. اگر به فکر نادیده گرفتن این عملکرد هستید، با رفتار مورد نظر خود در انجمن پست کنید تا ببینید آیا رویکرد دیگری وجود دارد یا خیر. |
isSerializable() | بررسی کنید که آیا این فیلد باید توسط رندر XML سریال شود یا خیر. منطق سازگاری با عقب و حالت های نامتجانس را مدیریت می کند. | |
isTabNavigable() | نشان می دهد که آیا این فیلد قابل پیمایش برگه است یا خیر. | |
isVisible() | مشخص می کند که آیا این قسمت قابل ویرایش قابل مشاهده است یا خیر. | |
loadLegacyState (کلاس فراخوان، حالت) | حالت داده شده را با استفاده از قلاب های XML قدیمی بارگیری می کند، در صورتی که باید استفاده شوند. درست را نشان می دهد که بارگیری انجام شده است، در غیر این صورت false. | |
onLocationChange(_) | به فیلد اطلاع می دهد که مکان خود را تغییر داده است. | |
onMouseDown_(e) | protected | یک رویداد اشاره گر در یک فیلد را مدیریت کنید. |
onShortcut(_shortcut) | میانبر صفحه کلید داده شده را کنترل می کند. | |
positionBorderRect_() | protected | پس از تغییر اندازه، مرز یک فیلد را به صورت مستقیم قرار دهید. |
positionTextElement_(xOffset، ContentWidth) | protected | بعد از تغییر اندازه، عنصر متنی فیلد را قرار دهید. این هر دو موقعیت LTR و RTL را کنترل می کند. |
render_() | protected | توسط getSize() برای جابجایی/تغییر اندازه عناصر DOM و دریافت اندازه جدید استفاده می شود. تمام رندرهایی که روی اندازه/شکل بلوک تاثیر دارند باید در اینجا انجام شوند و باید توسط getSize() فعال شوند. |
repositionForWindowResize() | یک قلاب توسعه دهنده برای تغییر مکان WidgetDiv در طول تغییر اندازه پنجره. اگر فیلد شما دارای یک WidgetDiv است که باید هنگام تغییر اندازه پنجره، موقعیت خود را تغییر دهد، باید این قلاب را تعریف کنید. به عنوان مثال، فیلدهای ورودی متن این قلاب را تعریف می کنند تا WidgetDiv ورودی بتواند در یک رویداد تغییر اندازه پنجره، موقعیت خود را تغییر دهد. این امر به ویژه زمانی مهم است که ورودیهای مدال غیرفعال شده باشند، زیرا دستگاههای Android با باز شدن صفحهکلید نرم، رویداد تغییر اندازه پنجره را اجرا میکنند. اگر می خواهید WidgetDiv به جای تغییر موقعیت، خود را پنهان کند، false را برگردانید. این رفتار پیش فرض است. DropdownDiv ها از قبل منطق موقعیت یابی خود را مدیریت می کنند، بنابراین اگر فیلد شما فقط دارای یک DropdownDiv باشد، نیازی به لغو این تابع نیست. | |
saveLegacyState(callingClass) | protected | اگر باید از آن استفاده شود، یک نسخه رشتهای از حالت XML را برمیگرداند. در غیر این صورت این عدد تهی را برمیگرداند، برای سیگنال دادن به فیلد باید از سریالسازی خود استفاده کرد. |
setEnabled (فعال) | تنظیم کنید که آیا میتوان مقدار این فیلد را با استفاده از ویرایشگر تغییر داد، زمانی که بلوک منبع قابل ویرایش است. | |
setSourceBlock (block) | این فیلد را به یک بلوک وصل کنید. | |
setTooltip (نکته جدید) | راهنمای ابزار را برای این فیلد تنظیم می کند. | |
setValidator (هندلر) | یک تابع اعتبار سنجی جدید را برای فیلدهای قابل ویرایش تنظیم می کند یا اعتبارسنجی تنظیم شده قبلی را پاک می کند. تابع اعتبارسنجی مقدار فیلد جدید را می گیرد و مقدار اعتبارسنجی شده را برمی گرداند. مقدار تأیید شده می تواند مقدار ورودی، نسخه اصلاح شده مقدار ورودی یا تهی برای لغو تغییر باشد. اگر تابع چیزی را برگرداند (یا تعریف نشده برمی گرداند) مقدار جدید به عنوان معتبر پذیرفته می شود. این برای اجازه دادن به فیلدهایی است که از تابع تأیید شده به عنوان اعلان رویداد تغییر در سطح فیلد استفاده می کنند. | |
setValue (newValue، fireChangeEvent) | برای تغییر مقدار فیلد استفاده می شود. اعتبار سنجی و رویدادها را کنترل می کند. کلاسهای فرعی باید doClassValidation_ و doValueUpdate_ را به جای این روش لغو کنند. | |
showEditor_(_e) | protected | یک قلاب توسعه دهنده برای ایجاد یک ویرایشگر برای فیلد. این به طور پیشفرض no-op است و برای ایجاد یک ویرایشگر باید لغو شود. |
updateEditable() | رابط کاربری را اضافه یا حذف کنید که نشان می دهد این قسمت قابل ویرایش است یا خیر. | |
updateSize_(حاشیه) | protected | اندازه فیلد را بر اساس متن به روز می کند. |