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

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

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

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

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

ユーザーがJClientにバインドされたコントロールを操作すると、ビジネス・コンポーネントAPIを使用してデータが更新される場合があります。textFieldDname (TextField)を例に説明します。ユーザーがこの内容を編集してコントロールから移動する(focusLostイベントが生成される)と、JClientにはこのイベントが通知されます。JClientはコントロールから更新後のデータを取得し、行に対してsetAttribute()をコールします。

 

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