JClientのコントロール・バインディングについて

コントロールへのデータの移入

データ参照パネルが初期化されると、レイアウト・パネルはパネル・バインディングのexecuteIfNeeded()をコールし、ビジネス・コンポーネント・データソースに問合せを実行します。

executeIfNeeded()メソッドは、ビュー・オブジェクトに対して過去に問合せが実行されているかどうかを確認し、実行されていなければそのオブジェクトに対してexecuteQuery()をコールします。 この実行された問合せにより、データベースからデータがキャッシュに取り出され、Oracle ADF Business Componentsの行セット・リスナー・イベントが起動されます。最初に起動されるのは、 RowSetListener.rangeRefreshedイベントです。 このイベントはRowSetListenerを実装し、自身をリスナーとして登録しているため、イテレータ・バインディングによって取得されます。このイベントは範囲内の行を取得し、コントロール・バインディングに対してupdateValuesFromRows()をコールします。 コントロール・バインディングは行からデータを取り出し、Swing APIを使用してコントロールにデータを割り当てます。 その結果、Swing APIにより、パネルのUIがデータで更新されます。

コントロールを介したデータの更新

ユーザーがJClientにバインドされたコントロールを操作すると、Oracle ADF Business Componentsを使用してデータが更新される場合があります。 たとえば、テキスト・フィールド(textFieldDname)の場合、ユーザーがテキスト・フィールドの内容を編集してコントロールから移動する(focusLostイベントが生成される)と、JClientにはこのイベントが通知されます。 すると、JClientはコントロールから更新後のデータを取得し、行に対してsetAttribute()をコールします。

 

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