ADFアクション・バインディングのカスタマイズ

データ・コントロール・パレットから挿入する次のUIコントロールに、ADFアクション・バインディングをカスタマイズできます。

アクション・バインディングによりユーザーは、特定のビジネス・サービスの属性およびコレクションでアクションを開始できます。アクションはビジネス・サービスのクラス・メソッドにより定義され、データ・コントロール・パレットに表示される「Operations」フォルダ内に表示されます。

アクション・バインディング・エディタを使用して、データ・コレクションまたはデータ・コントロールと、それに対応するアクションを選択します。または、データ・コントロール・パレットを使用してアクションをボタンとして挿入する場合、アクション・バインディング・エディタで選択内容が表示されます。

注意: カスタム・メソッドでパラメータを使用する場合、パラメータの実際の値はプロパティ・インスペクタで指定できます。アクション・バインディング・エディタでは、メソッドの引数の値の入力はサポートされていません。

特定のビジネス・サービスでは、そのビジネス・サービスのADFデータ・コントロールで標準アクションがサポートされています。たとえば、ADF Business Componentsでは次の標準アクションを使用できます。

アクションが開始されると、バインドされたデータ・コレクションがすぐに更新されます。このアクション・バインディングと同じデータ・コレクションを使用するすべてのコントロール・バインディングを通じて、変更内容がUIに反映されます。

アクション・バインディングを設定するには、次のようにします。

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

  2. 「データ・コントロール・パレット」で、目的のデータ・コレクションまたはデータ・コントロール用の「Operations」フォルダを開きます。

    注意: データ・コントロール・パレットの階層は、データ・コレクションの下の「Operations」フォルダ内の特定データ・コレクションに適用される操作(「Create」「Delete」など)を表します。ビジネス・サービスをADFデータ・コントロールによってサポートする場合は、「Commit」「Rollback」などの操作も選択できます。これらは階層の最上位ブランチの「Operations」フォルダ内にある現行ドキュメントのバインディング・コンテキストで、すべてのデータ・コレクションに適用されます。

  3. 目的の操作を、開いたドキュメントまでドラッグします。JDeveloperによってコードがクラス・ファイルに追加され、コンポーネントが操作にバインドされます。

  4. 目的のコントロール用のアクション・バインディング・エディタを表示します

  5. 「データ・コレクション」リストで、処理を実行するコレクションを選択します。

    ヒント: データ・コレクションでの処理結果を表示するには、データ・パネルに別のUIコントロールを追加します。このコントロールは、アクション・バインディングと同じデータ・コレクションへのコントロール・バインディングを設定するだけで、UIに処理が反映されます。

  6. 「操作の選択」で、選択したデータ・コレクションで実行するアクションを選択します。

  7. 「イテレータの選択」フィールドは、ADFデータ・コントロール上のアクションでイテレータを必要としない「Commit」や「Rollback」のようなカスタム・メソッドを選択している場合には、空のままにしておく必要があります。

    「イテレータの選択」リストで、選択したデータ・コレクションにアクセスするため、すでに指定したイテレータを表示している場合は、選択を変更しないでおきます。また、ビジネス・サービス・データ・コレクション(「Next」、「Next Set」、「Previous」、「Previous Set」など)によって提供される事前定義済のアクションの1つを選択している場合は、「新規」をクリックしてイテレータを生成し、ドロップダウン・リストに表示されるようにします。

    警告: ドロップダウン・リストでイテレータの選択内容を変更すると、以前選択していた属性が削除されます。イテレータの選択を変更する前に、選択されていた元の属性を記録しておく必要があります。必要に応じて「取消」を押し、元の属性選択を更新しないでバインディング・エディタを終了できます。

  8. 「OK」をクリックし、バインディング設定を保存します。

  9. プロパティ・インスペクタを開いて、いずれかのメソッド・パラメータ値を定義します

    または、ユーザーがメソッドのパラメータを指定できるADF Swingフォームを生成できます。

JDeveloperはjbInit()メソッド内にsetModel()メソッドを追加して、アクション・バインディングを生成します。たとえば、データ・コントロール・パレットからボタンを挿入後、メタデータを指定するためにDataControlIdを参照するメソッドは次のようになります。

myButton.setModel((ButtonModel)panelBinding.bindUIControl("DataControlId", myButton));

新しいバインディング用のメタデータは、バインディング定義ファイル(PageDef.xml)に表示されます。カスタム・メソッド引数定義がある場合は、プロパティ・インスペクタを使用して値を指定するまで、未定義として表示されることに注意してください。

注意: デフォルトで、同じメソッド用に2回以上アクション・バインディングを生成すると、メソッドの戻る場所が同じになります。つまり、同じメソッドに対して一意のアクション・バインディングを生成する場合は、ReturnName属性を編集して、各バインディングに対して一意の名前を指定する必要があります。通常は、同じアクション・バインディングの重複使用については、場所を同じままにします(この場合、各使用ごとに異なるパラメータ値が指定されます)。これにより、バインディング・コンテキスト内のすべてのバインドされたコントロールが、同じ戻り名の下にある結果を検索できます。


ADFバインディングとSwingコントロールについて
アクション・バインディング用のメソッド・パラメータの提供
ADF Swingフォームでのメソッドとパラメータとのバインド