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

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

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

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

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

特定のビジネス・サービスについては、そのビジネス・サービス用のADFデータ・コントロールが標準アクションをサポートします。 たとえば、ADF Business Componentsの場合、次のような標準アクションが利用可能です。

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

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

  1. データ・パネルを開き、「UIエディタ」タブを選択します。

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

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

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

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

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

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

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

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

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

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

    「イテレータの選択」リストで、選択したデータ・コレクションにアクセスするため、すでに指定したイテレータを表示している場合は、選択を変更しないでおきます。また、ビジネス・サービス・データ・コレクション(「次へ>」、「次のセット」、「前へ」、「前のセット」など)によって提供される事前定義済のアクションの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.