データ・コントロール・パレットから挿入する次のUIコントロールに、ADFアクション・バインディングをカスタマイズできます。
アクション・バインディングによりユーザーは、特定のビジネス・サービスの属性およびコレクションでアクションを開始できます。 アクションはビジネス・サービスのクラス・メソッドにより定義され、データ・コントロール・パレットに表示される「操作」フォルダ内に表示されます。
アクション・バインディング・エディタを使用して、データ・コレクションまたはデータ・コレクションと、それに対応するアクションを選択します。 または、データ・コントロール・パレットを使用してアクションをボタンとして挿入する場合、アクション・バインディング・エディタが選択内容を表示します。
注意: カスタム・メソッドがパラメータを受け入れると、パラメータの実際の値をプロパティ・インスペクタを通じて指定できます。 アクション・バインディング・エディタは、メソッド引数用の値の入力をサポートしません。
特定のビジネス・サービスについては、そのビジネス・サービス用のADFデータ・コントロールが標準アクションをサポートします。 たとえば、ADF Business Componentsの場合、次のような標準アクションが利用可能です。
ユーザーがアクションを開始すると、バインドされたデータ・コレクションはすぐに更新されます。 このアクション・バインディングと同じデータ・コレクションを使用するすべてのコントロール・バインディングを通じて、変更内容がUIに反映されます。
アクション・バインディングを設定するには、次のようにします。
注意: データ・コントロール・パレットの階層は、データ・コレクションの下にある「操作」フォルダ内の特定のデータ・コレクションに適用される操作(「作成」や「削除」など)を表します。 ビジネス・サービス用のADFデータ・コントロールによりサポートされる場合、階層の最上位ブランチの「操作」フォルダ内の、現在のドキュメントのバインディング・コンテキストにあるすべてのデータ・コレクションに適用される操作(「コミット」や「ロールバック」など)も選択できます。
開いた「操作」フォルダから目的のアクションを選択します。
「データ・コントロール・パレット」から、ボタン・コントロールをデータ・パネルに追加します。
Webページを使用する場合、HTMLフォーム要素の有無にかかわらずボタンの挿入を選択できます。 フォーム要素は、ページ・リクエストを処理するためのアクションを送信します。 Webページにフォーム要素がすでにある場合、フォームなしのボタンを選択してページの既存のフォームに挿入します。
「データ・コレクション」リストで、処理を実行するコレクションを選択します。
ヒント: データ・コレクションでの処理結果を表示するには、データ・パネルに別のUIコントロールを追加します。 このコントロールは、アクション・バインディングと同じデータ・コレクションへのコントロール・バインディングを設定するだけで、UIに処理が反映されます。
「操作の選択」で、選択したデータ・コレクションで実行するアクションを選択します。
「イテレータの選択」フィールドは、ADFデータ・コントロール上のアクションでイテレータを必要としない「コミット」や「ロールバック」のようなカスタム・メソッドを選択している場合には、空のままにしておく必要があります。
「イテレータの選択」リストで、選択したデータ・コレクションにアクセスするため、すでに指定したイテレータを表示している場合は、選択を変更しないでおきます。また、ビジネス・サービス・データ・コレクション(「次へ>」、「次のセット」、「前へ」、「前のセット」など)によって提供される事前定義済のアクションの1つを選択している場合は、「新規」をクリックしてイテレータを生成し、ドロップダウン・リストに表示されるようにします。
警告: ドロップダウン・リストでイテレータの選択を変更すると、前に作成された属性の選択が削除されます。 イテレータの選択を変更する前に、元の属性選択を記録しておいてください。 必要に応じて、「取消」を押し、元の属性選択を更新しないでバインディング・エディタを終了できます。 生成したバインディングを使用しない場合、未使用のイテレータ・バインディングをバインディング定義ファイルから削除できます。エディタで「取消」を押しても、バインディングは自動的に削除されません。
「OK」をクリックし、バインディング設定を保存します。
プロパティ・インスペクタを開いて、いずれかのメソッド・パラメータ値を定義します。
または、ユーザーがメソッドのパラメータを指定できる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.