ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Application Development Framework Swingアプリケーションの開発
12c (12.1.3)
E59440-01
  目次へ移動
目次

前
 
次
 

8 ADF Swingユーザー・インタフェースでの検証の使用方法

この章では、ADF Swingアプリケーションでのクライアント・サイドの検証の使用方法について説明します。

この章には、次のセクションがあります。

8.1 イベントの検証について

JDeveloperは、次のものを使用して検証を実行します。

ADF Swingアプリケーションを介して、ADF Swingフォーム上で検証を実行し、ユーザーによる誤ったデータの入力を防止します。たとえば、電話番号を必要としているフィールドに英字が入力されるのを防止する場合があります。同様に、入力されたデータを検証し、ユーザーに通知する場合もあります。

8.2 ADFコントロール・バインディングでの検証の使用方法

ユーザー・インタフェースでの検証は、コントロール・バインディングのレベルのソース・コードを介して処理されます。これを行うには、検証コードを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));

8.3 ADF Swingパネルでの検証の使用方法

panelBindingオブジェクトは、UIとADFビジネス・コンポーネント・データ・モデル・レイヤーとの間のリンクの管理を担当しており、アクション時にイベントをトリガーできます。このタイプの検証では、ユーザーがフィールドにデータを入力し、その後、別のフィールドに移動したときに検証を実行できます。このタイプの検証は、ビジネス・コンポーネントで定義されているビジネス・ルールに違反することなく、ユーザーに通知が必要なパネルで実行できます。

たとえば、ビジネス・コンポーネントで定義されている100から1000までの範囲を持つ給与について考えてみます。給与フィールドが500未満に設定されている場合、ユーザーに警告し、フィールドを強調表示する必要があります。この場合、値が設定されているときに検証が必要です。panelBindingオブジェクトは、beforeSetAttribute()がコールされたときに、イベントをトリガーします。

ADF Swingパネルに検証を設定する手順は次のとおりです。

  1. パネルをJavaビジュアル・エディタで開きます。

  2. 「構造」ウィンドウの「その他」を開き、「panelBinding」を選択します。

  3. 「プロパティ」ウィンドウで「イベント」セクションを開き、「beforeSetAttribute」フィールドにイベント名を入力します。

  4. Javaソース・エディタで、例8-2に示すサンプルのように、生成されたイベント・ハンドラに検証コードを追加します。

例8-2 生成されたイベント・ハンドラに追加されたコード

if (e.getAttributeName().equals("Salary"))
   {
   Object val = e.getNewValue();
   if (val != null)
      {
      Integer n = new Integer(val.toString());
      if (n.intValue() < 500)
         {
         mSalary.setBackground(Color.red);
         throw new oracle.jbo.JboException("That's a bit low!");
         }
      }
   }