Rich UI での書式処理

Rich UI は、ビジネス・ソフトウェアで従来から行われている種類の書式処理を実装する方法を提供します。処理は、単一ビュー (ウィジェット) を単一モデル (データ・フィールド) に関連付ける定義である Rich UI コントローラーに依存しています。Rich UI コントローラーの詳細については、『Rich UI の検査およびフォーマット設定』を参照してください。

以下の手順を実行するアプリケーションで書式処理を使用できます。
Rich UI は、2 つの書式処理のバリエーションを提供します。

いずれの場合でも、それぞれの書式フィールドを順番に処理する関数を呼び出します (例えば、書式全体の検証)。

書式開発の開始点

EGL は、書式開発の開始点を提供します。簡単に言うと、Rich UI エディターがアプリケーション固有のコードを提供し、ユーザーがそれを呼び出すためのロジックを追加します。初期開発を行うには、次のようにします。
  1. Rich UI エディターでハンドラーを開き、レコード定義を「設計」タブにドラッグ・アンド・ドロップします。
  2. 『Rich UI エディターへのデータのドラッグによるウィジェットの作成』で説明されているように、ウィザードを処理します。
キー・ストロークに応答して、エディターは以下のコードをハンドラーに追加します。
  • 書式マネージャー。宣言内の書式フィールドは、ユーザーのニーズに固有です。
  • 書式マネージャーの汎用的な書式処理ロジックにアクセスする関数。

書式フィールド

書式フィールドは、それ自体データの集合 (FormField 型のレコード) です。レコードの使用方法は、書式マネージャーの場合と検証書式の場合で異なります。それらのメカニズムの両方に単一のレコード・タイプを使用することにより、2 つのメカニズム間で簡単に切り替えることができます。

次の表に示されているように、使用目的に適したレコード・フィールドを設定します。

タイプ FormField のレコード内のフィールド フィールド値 コンテキスト 詳細
controller コントローラー 書式マネージャーまたは検証書式 コントローラーは、ビューをモデルに関連付ける定義です。
displayName String? 検証書式 検証書式によって提供されるフィールド・ラベルにストリングが割り当てられます。書式マネージャーを使用している場合、そのストリングは無視されます。
errorLabel TextLabel 書式マネージャー errorLabel という名前のテキスト・ラベルはエラー・フィールドです。書式フィールドの検証中に出力されるエラー・メッセージが表示されます (ある場合)。エラー・フィールドの外観は、エラー発生時に変更されます。

書式マネージャーを使用している場合は、書式フィールドを宣言するときにテキスト・ラベルを指定します。ただし、検証書式を使用している場合は、テキスト・ラベルは自動的に指定されます。

nameLabel TextLabel 書式マネージャー 書式フィールドのラベル。検証書式を使用している場合、この設定は無視されます。検証書式は、ラベルを提供し、そのラベルに displayName 値を割り当てます。
labelClass String? Rich UI で使用 CSS クラス。この値は変更しないでください。これは、エラーが解決された後で書式フィールド・ラベルを元の外観に変更するために使用されます。

クラス名は EglRuiTextLabel です。エラー発生時にも同じクラス名が使用されますが、2 次クラス FormErrorLabel が追加されます。

検証書式を処理する場合は、controller 値と displayName 値を指定します。 書式マネージャーを処理する場合は、controller 値と nameLabel 値、およびオプションで errorLabel 値を指定します。

書式レベル関数

書式レベル関数はコントローラー固有の関数を呼び出します。呼び出しの順序は、entries 配列の書式フィールドの順序とは逆になります。

コードでは、データを検証、コミット、および公開するための関数を呼び出すと考えられます。例えば、コードは次のロジックを拡張したものになります。
if (employeeForm.isValid())
   employeeForm.commit();
end

検証の最後にコントローラー自体がコントローラー固有の validStateSetter 関数を呼び出します。

イベントの順序に注意してください。
  1. 書式レベル isValid 関数を呼び出すと、すべてのコントローラーについて順に次の効果が発生します。
    1. コントローラーの isValid 関数 (コントローラー定義で参照されている validator 関数を呼び出す) を呼び出します。このプロセスには、コントローラー・モデルの isDecimalDigit プロパティーに関するものなど、基本的な検証も含まれます。
    2. コントローラーの validStateSetter 関数を呼び出します。 デフォルトでは、この関数は書式レベル validStateSetter 関数です。
  2. すべてのコントローラー・ビューが有効なデータを含んでいる場合、コードは書式レベル commit 関数を呼び出します。その関数は、各コントローラー固有 commit 関数を呼び出し、コントローラー・ビューのデータのフォーマット解除、およびコントローラー・モデルへの値の書き込みを行います。
前の順序を前提として、書式検証成功後に独自のフィールド間検証を呼び出すことができます。コードは次のようになります。
if (employeeForm.isValid())
   if (myValidation())
      employeeForm.commit();
   end
end

以下に、書式レベルの関数をアルファベット順に示します。

commit()
1 つのコマンドですべてのビューを関連モデルにコミットできるようにします。 書式レベル commit 関数を起動すると、すべてのモデル・データをサービスに転送できます。

この関数には、パラメーターや戻り値はありません。

isValid()
コントローラー固有の isValid 関数を呼び出します。
この関数にパラメーターはなく、すべての書式フィールドの検証が成功したかどうかを示すブール値を戻します。
publish()
各コントローラー固有 publish 関数を呼び出し、コントローラー・モデルに格納されているデータのフォーマット設定、およびフォーマット設定されたデータのコントローラー・ビューへの書き込みを行います。コードでは、書式レベルの publish コマンドをコールバック関数で呼び出すことができます。この関数は、コードがサービスから戻されたデータを受け取った後で呼び出されます。

この関数には、パラメーターや戻り値はありません。

validate()
コントローラー固有の validate 関数を呼び出します。

この関数にはパラメーターはなく、検証が成功したかどうか (つまり、すべてのコントローラー固有の validate 関数がヌルまたはブランクのどちらを返したか) を示すブール値が返されます。


フィードバック