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

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

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

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

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

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

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

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

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

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

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

  3. 開いた「Operations」フォルダから目的のアクションを選択します。

  4. 「データ・コントロール・パレット」から、ボタン・コントロールをデータ・パネルに追加します。

    Webページを使用する場合、HTMLフォーム要素の有無にかかわらずボタンの挿入を選択できます。フォーム要素は、ページ・リクエストを処理するためのアクションを送信します。Webページにフォーム要素がすでにある場合、フォームなしのボタンを選択してページの既存のフォームに挿入します。

  5. 「構造」ウィンドウから、目的のコントロール用のアクション・バインディング・エディタを表示します。

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

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

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

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

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

    警告: ドロップダウン・リストでイテレータの選択内容を変更すると、以前選択していた属性が削除されます。イテレータの選択を変更する前に、選択されていた元の属性を記録しておく必要があります。 必要に応じて「取消」を押し、元の属性選択を更新せずにバインディング・エディタを終了できます。 生成したバインディングを使用しない場合、未使用のイテレータ・バインディングをバインディング定義ファイルから削除できます。エディタで「取消」を押しても、バインディングは自動的に削除されません。

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

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

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

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

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

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




<DCControl

         id="sameAsMethodName"

         SubType="DCMethodAction"

         Action="999"

         DataControl="ClassName"

         InstanceName="ClassName.dataProvideer"

         MethodName="methodName"

         ReturnName="ClassName.methodResults.ClassNameDataControl_dataProvider_methodName_result"

         RequiresUpdateMode="false" >

                 <Contents >

            <NamedData

               NDName="Arg0"

               NDType="java.lang.String"

               NDValue="%null%" >

            </NamedData>

         </Contents>

</DCControl>    

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

アクション・バインディングが標準メソッドの場合、新しいバインディング用のメタデータが、バインディング定義ファイル(UIModel.xml)に表示されます。




<DCControl

         id="SameAsActionName"

         SubType="DCAction"

         DTClass="oracle.adf.dt.objects.JUDTCtrlDataControlAction"

         Action="ActionNameIdentifier"

         DataControl="BusinessServiceDataControlName"

</DCControl>    

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

 

Copyright © 1997, 2004, Oracle. All rights reserved.