コントロールへのデータの移入
データ参照パネルが初期化されると、レイアウト・パネルはパネル・バインドに対してexecuteIfNeeded()
をコールし、BC4Jデータソースに問合せを実行します。
このメソッドは、ビュー・オブジェクトに対して過去に問合せが実行されているかどうかを確認し、実行されていなければそのオブジェクトに対してexecuteQuery()
をコールします。これにより、データベースからデータがキャッシュに取り出され、BC4JのRowSetListenerイベントが起動されます。最初に起動されるのは、RowSetListener.rangeRefreshed
イベントです。このイベントはRowSetListenerを実装し、自身をリスナーとして登録しているため、イテレータ・バインドによって取得されます。このイベントは範囲内の行を取得し、コントロール・バインドに対してupdateValuesFromRows()
をコールします。コントロール・バインドは行からデータを取り出し、Swing APIを使用してコントロールにデータを割り当てます。これにより、パネルのUIがデータで更新されます。
コントロールを介したデータの更新
ユーザーがJClientにバインドされたコントロールを操作すると、BC4J APIを使用してデータが更新される場合があります。textFieldDname (TextField)を例に説明します。ユーザーがこの内容を編集してコントロールから移動する(focusLost
イベントが生成される)と、JClientにはこのイベントが通知されます。JClientはコントロールから更新後のデータを取得し、行に対してsetAttribute()
をコールします。