欄位類別
可編輯欄位的抽象類別。
Signature:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
實作: IASTNodeLocationSvg、IASTNodeLocationWithBlock、IKeyboardAccessible、IRegistrable、ISerializable
建構函式
建構函式 | 修飾符 | 說明 |
---|---|---|
(建構函式)(值, 驗證工具, 設定) | 建構 Field 類別的新例項 |
屬性
屬性 | 修飾符 | 類型 | 說明 |
---|---|---|---|
borderRect_ | protected |
SVGRectElement |空值 | 顯示欄位的 SVG 邊框元素。 |
clickTarget_ | protected |
元素 |空值 | 點擊處理常式繫結的元素。 |
constants_ | protected |
ConstantProvider |空值 | 與來源區塊轉譯器相關聯的常數。 |
遊標 | 字串 | 滑鼠遊標在啟動編輯器的互動區時,滑鼠遊標會指向樣式。 | |
DEFAULT_VALUE | T |空值 | 如要覆寫在「Field」中設定的預設值,請直接更新原型。 範例: |
|
可編輯 | 布林值 | 可編輯的欄位通常會顯示某種使用者介面,指出這些欄位可以編輯。序列化程式也會儲存這些內容。 | |
enabled_ | protected |
布林值 | 可以在可編輯區塊中使用編輯器變更欄位值嗎? |
fieldGroup_ | protected |
SVGGElement |空值 | 顯示欄位的 SVG 群組元素。 |
isDirty_ | protected |
布林值 | 是否需要重新轉譯這個區塊? |
maxDisplayLength | 數字 | 加上刪節號前顯示的文字長度上限。 | |
名稱? | 字串 | (選填) 欄位名稱。每個區塊中皆不得重複。靜態標籤通常不會命名。 | |
NBSP |
|
(未宣告) | 不分行的空格。 |
可扣款 | 布林值 | 可序列化欄位由序列化程式儲存,不可序列化的欄位則不會。可編輯的欄位也應可序列化。此設定並非預設,因此 SERIALIZABLE 可以回溯相容。 | |
size_ | protected |
尺寸 | |
SKIP_SETUP |
|
專屬符號 | 這是用來表示欄位建構函式「不得」「不要」設定欄位值或執行 setup_」的值,並允許子類別改為執行該動作。 |
sourceBlock_ | protected |
封鎖 |空值 | 封鎖這個欄位。以 null 啟動,然後在 init 中設定。 |
textContent_ | protected |
文字 |空值 | 顯示欄位中的文字內容元素。 |
textElement_ | protected |
SVGTextElement |空值 | 顯示欄位的 SVG 文字元素。 |
validator_ | protected |
FieldValidator<T>|空值 | 使用者編輯可編輯的欄位時,會呼叫驗證函式。 |
value_ | protected |
T |空值 | |
visible_ | protected |
布林值 | 欄位是否因區塊收合而可見或隱藏? |
方法
方法 | 修飾符 | 說明 |
---|---|---|
applyColour() | 更新欄位以符合區塊的顏色/樣式。 如果欄位顏色視區塊顏色而定,非抽象子類別類別可能會想要實作此方法。系統會在適當時機自動呼叫這個方法,例如上層區塊或轉譯器變更時。 詳情請參閱欄位說明文件,或使用 FieldDrop 取得範例。 |
|
bindEvents_() | protected |
將事件繫結至欄位。如果子類別需要執行自訂輸入處理,則可透過子類別覆寫。 |
configure_(config) | protected |
處理傳遞至欄位的設定對應。 |
createBorderRect_() | protected |
建立欄位邊框矩形元素。不會遭到子類別覆寫。請改為修改 initView 中的函式結果,或建立另外的函式呼叫。 |
createTextElement_() | protected |
建立欄位文字元素。不會遭到子類別覆寫。請改為修改 initView 中的函式結果,或建立另外的函式呼叫。 |
doClassValidation_(newValue) | protected |
請在設定欄位值之前,先驗證變更內容。如需子類別實作的範例,請參閱「欄位下拉式選單」。 **注意:** 驗證會傳回 |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_無效值, _fireChangeEvent) | protected |
用於通知欄位輸入了無效值。可以透過子類別覆寫,請參閱 FieldTextInput。預設為免人工管理。 |
doValueUpdate_(newValue) | protected |
用於更新欄位的值。子類別可覆寫以執行自訂的儲存值/更新外部項目。 |
fromJson(_options) | static |
子類別應重新實作這個方法,以從 JSON 引數物件建構其 Field 子類別。 如果子類別未覆寫此方法,在 FieldRegistry 中註冊欄位子類別就會發生錯誤。 |
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 |
為這個欄位建立區塊 UI。 |
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() | 開發人員掛鉤,在調整視窗大小時調整 WidgetDiv 的位置。如果欄位含有 WidgetDiv,且必須在調整視窗大小時重新調整位置,您就必須定義這個掛鉤。例如,文字輸入欄位會定義此掛鉤,讓輸入的 WidgetDiv 可以在視窗大小調整事件上重新定位。當強制回應輸入功能遭到停用時,這一點尤其重要,因為 Android 裝置會在螢幕鍵盤開啟時觸發視窗大小調整事件。 如果您想讓 WidgetDiv 隱藏自己,而不是重新調整位置,則傳回 false。此為預設行為。 DropdownDivs 已處理自己的定位邏輯,因此如果欄位只有 DropdownDiv,就不必覆寫這個函式。 |
|
saveLegacyState(callingClass) | protected |
傳回 XML 狀態的字串化版本 (如果使用的話)。否則,系統會傳回空值,以表示欄位應使用自己的序列化。 |
setEnabled(enabled) | 設定在來源區塊可編輯時,是否可透過編輯器變更這個欄位的值。 | |
setSourceBlock(block) | 將這個欄位附加至區塊。 | |
setTooltip(newTip) | 設定這個欄位的工具提示。 | |
setValidator(handler) | 為可編輯的欄位設定新的驗證函式,或清除先前設定的驗證工具。 驗證工具使用新欄位值,並傳回已驗證的值。驗證的值可以是輸入值、輸入值的修改版本,或是 null 來取消變更。 如果函式未傳回任何值 (或傳回未定義),則會接受新值。如果欄位使用已驗證的函式做為欄位層級變更事件通知,即可使用這類通知。 |
|
setValue(newValue, fireChangeEvent) | 用來變更欄位的值。處理驗證和事件。子類別應覆寫 doClassValidation_ 和 doValueUpdate_,而不是這個方法。 | |
showEditor_(_e) | protected |
開發人員掛鉤,用於建立欄位編輯器。根據預設,此為免人工管理。如要建立編輯器,您必須加以覆寫。 |
updateEditable() | 新增或移除 UI,指定這個欄位是否可編輯的。 | |
updateSize_(margin) | protected |
根據文字更新欄位大小。 |