Field クラス
編集可能なフィールドの抽象クラス。
署名:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
実装: IASTNodeLocationSvg、IASTNodeLocationWithBlock、IKeyboardAccessible、IRegistrable、ISerializable
コンストラクタ
コンストラクタ | 修飾子 | 説明 |
---|---|---|
(structor)(値, バリデータ, 構成) | Field クラスの新しいインスタンスを作成します。 |
プロパティ
プロパティ | 修飾子 | 種類 | 説明 |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | null | レンダリングされたフィールドの SVG 枠線要素。 |
clickTarget_ | protected |
要素 | null | クリック ハンドラがバインドされている要素。 |
constants_ | protected |
ConstantProvider | null | ソースブロックのレンダラに関連付けられた定数。 |
CURSOR | string | エディタを起動するホットスポットにカーソルを合わせたときのマウスカーソルのスタイル。 | |
DEFAULT_VALUE | T | null | [**Field**] に設定されているデフォルト値を上書きするには、プロトタイプを直接更新します。 例: |
|
編集可能 | boolean | 編集可能なフィールドには通常、編集可能であることを示すなんらかの UI が表示されます。また、シリアライザによっても保存されます。 | |
enabled_ | protected |
boolean | 編集可能なブロックのエディタを使用してフィールドの値を変更できますか? |
fieldGroup_ | protected |
SVGGElement | null | レンダリングされたフィールドの SVG グループ要素。 |
isDirty_ | protected |
boolean | このブロックを再レンダリングする必要はありますか? |
maxDisplayLength | 数値 | 省略記号を追加する前に表示するテキストの最大文字数。 | |
名前は? | string | (省略可)フィールドの名前。各ブロック内で一意。通常、静的ラベルには名前がありません。 | |
NBSP |
|
(未申告) | 改行しないスペース。 |
直列化可能 | boolean | シリアル化可能なフィールドはシリアライザによって保存されますが、シリアル化できないフィールドは保存されません。編集可能なフィールドはシリアル化可能であることも必要です。これはデフォルトでは一致しないため、SERIALIZABLE には下位互換性があります。 | |
size_ | protected |
サイズ | |
SKIP_SETUP |
|
一意の記号 | フィールドのコンストラクタがフィールドの値を設定すべきでないか、または Configure_ を実行すべきでないかを知らせるために使用される値で、代わりにサブクラスがそれを実行できるようにする必要があります。 |
sourceBlock_ | protected |
ブロック | null | このフィールドの接続をブロックします。null で開始し、init で設定します。 |
textContent_ | protected |
テキスト | null | レンダリングされたフィールドのテキスト コンテンツ要素。 |
textElement_ | protected |
SVGTextElement | null | レンダリングされたフィールドの SVG テキスト要素。 |
validator_ | protected |
FieldValidator<T> | null | ユーザーが編集可能なフィールドを編集するときに呼び出される検証関数。 |
value_ | protected |
T | null | |
visible_ | protected |
boolean | このフィールドは表示状態になっていますか?それとも、ブロックが閉じられているために非表示になっていますか? |
Methods
メソッド | 修飾子 | 説明 |
---|---|---|
applyColour() | ブロックの色やスタイルに合わせてフィールドを更新します。 フィールドの色がブロックの色に依存する場合、抽象以外のサブクラスでこれを実装することをおすすめします。親ブロックやレンダラが変更されたときなど、適切なタイミングで自動的に呼び出されます。 詳細については、フィールドのドキュメントまたは FieldDropdown の例をご覧ください。 |
|
bindEvents_() | protected |
イベントをフィールドにバインドします。カスタム入力処理を行う必要がある場合は、サブクラスでオーバーライドできます。 |
configure_(config) | protected |
フィールドに渡された構成マップを処理します。 |
createBorderRect_() | protected |
フィールド枠の長方形要素を作成します。サブクラスでオーバーライドされないこと。代わりに、initView 内で関数の結果を変更するか、呼び出す別の関数を作成します。 |
createTextElement_() | protected |
フィールド テキスト要素を作成します。サブクラスでオーバーライドされないこと。代わりに、initView 内で関数の結果を変更するか、呼び出す別の関数を作成します。 |
doClassValidation_(newValue) | protected |
フィールドの値への変更を設定する前に検証します。サブクラスの実装例については、**FieldDropdown** をご覧ください。 **注:** Validation は、 |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_invalidValue) | protected |
無効な値が入力されたことをフィールドに通知するために使用されます。サブクラスでオーバーライドできます。FieldTextInput をご覧ください。デフォルトでは no-op です。 |
doValueUpdate_(newValue) | protected |
フィールドの値を更新するために使用します。値のカスタム ストレージや外部のものの更新を行うために、サブクラスでオーバーライドできます。 |
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() | このフィールドは現在編集可能かどうかを確認します。一部のフィールドは編集できません(テキストラベルなど)。編集可能にするフィールドでも、編集不可のブロックに存在するか、無効になっている可能性があります。 | |
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 状態を使用する必要がある場合は、文字列化されたバージョンを返します。それ以外の場合は null が返され、フィールドでは独自のシリアル化の使用が必要であることを示します。 |
setEnabled(enabled) | ソースブロックが編集可能な場合に、エディタを使用してこのフィールドの値を変更できるかどうかを指定します。 | |
setSourceBlock(block) | このフィールドをブロックにアタッチします。 | |
setTooltip(newTip) | このフィールドのツールチップを設定します。 | |
setValidator(handler) | 編集可能なフィールドに新しい検証関数を設定するか、以前に設定されたバリデータをクリアします。 Validator 関数は新しいフィールド値を受け取り、検証された値を返します。検証される値は、入力値、入力値の修正バージョン、変更を中止する null のいずれかです。 関数が何も返さない(または未定義を返す)場合、新しい値が有効と見なされます。これは、検証された関数をフィールド レベルの変更イベント通知として使用するフィールドを可能にするためです。 |
|
setValue(newValue, fireChangeEvent) | フィールドの値を変更するために使用します。検証とイベントを処理します。サブクラスでは、このメソッドではなく doClassValidation_ と doValueUpdate_ をオーバーライドする必要があります。 | |
showEditor_(_e) | protected |
フィールドのエディタを作成するためのデベロッパー フック。これはデフォルトでは何も行わないため、エディタを作成するにはオーバーライドする必要があります。 |
updateEditable() | このフィールドが編集可能かどうかを示す UI を追加または削除します。 | |
updateSize_(margin) | protected |
テキストに基づいてフィールドのサイズを更新します。 |