Oracle® Fusion Middleware Oracle Application Development Framework Swingアプリケーションの開発 12c (12.1.2) E48100-01 |
|
![]() 前 |
![]() 次 |
この章では、ADF Swingアプリケーションでのクライアント・サイドの検証の使用方法について説明します。
この章の構成は、次のとおりです。
JDeveloperは、次のものを使用して検証を実行します。
ADFビジネス・コンポーネント・データ・モデル・プロジェクトで定義されているルール
ユーザー・インタフェースでの操作時
ADF Swingアプリケーションを介して、ADF Swingフォーム上で検証を実行し、ユーザーによる誤ったデータの入力を防止します。たとえば、電話番号を必要としているフィールドに英字が入力されるのを防止する場合があります。同様に、入力されたデータを検証し、ユーザーに通知する場合もあります。
ユーザー・インタフェースでの検証は、コントロール・バインディングのレベルのソース・コードを介して処理されます。これを行うには、検証コードをPlainDocument
イベントとして定義し、setDocument()
メソッドを使用して、特定のコントロールにそのコードを登録します。その後、ADFビジネス・コンポーネント属性アイテムにバインドしたコントロールに対してsetDocument()
をコールすると、検証コードが含まれているドキュメントと連動します。例8-1は、各キーが押されたときに実行される検証を示しています。
例8-1 キーストロークごとの検証の例
//Add this code to create a document with the validation code and set it for the control mDeptno.setDocument(new javax.swing.text.PlainDocument() { public void insertString(int offs, String str, javax.swing.text.AttributeSet a) throws javax.swing.text.BadLocationException { StringBuffer buf = new StringBuffer(str); int size = buf.length(); char c; for (int i = 0; i < size; i++) { c = buf.charAt(i); if (!Character.isDigit(c)) { Toolkit.getDefaultToolkit().beep(); buf.deleteCharAt(i); } } super.insertString(offs, buf.toString(), a); } }); /*Here is the code that is generated for you which will set the control binding for the document. This will work with the document you defined above. */ mDepartmentId.setDocument((Document)panelBinding.bindUIControl("DepartmentId", mDepartmentId));
panelBinding
オブジェクトは、UIとADFビジネス・コンポーネント・データ・モデル・レイヤーとの間のリンクの管理を担当しており、アクション時にイベントをトリガーできます。このタイプの検証では、ユーザーがフィールドにデータを入力し、その後、別のフィールドに移動したときに検証を実行できます。このタイプの検証は、ビジネス・コンポーネントで定義されているビジネス・ルールに違反することなく、ユーザーに通知が必要なパネルで実行できます。
たとえば、ビジネス・コンポーネントで定義されている100から1000までの範囲を持つ給与について考えてみます。給与フィールドが500未満に設定されている場合、ユーザーに警告し、フィールドを強調表示する必要があります。この場合、値が設定されているときに検証が必要です。panelBinding
オブジェクトは、beforeSetAttribute()
がコールされたときに、イベントをトリガーします。
ADF Swingパネルに検証を設定する手順は次のとおりです。
パネルをJavaビジュアル・エディタで開きます。
「構造」ウィンドウの「その他」を開き、「panelBinding」を選択します。
「プロパティ」ウィンドウで「イベント」セクションを開き、「beforeSetAttribute」フィールドにイベント名を入力します。
Javaソース・エディタで、例8-2に示すサンプルのように、生成されたイベント・ハンドラに検証コードを追加します。