ビジネス・コンポーネント用のSwingクライアント・チュートリアルのまとめ

Previous topic
前へ
 

このチュートリアルでは、次のOracleテクノロジを使用して、データ・バインドされたSwingクライアント・アプリケーションをパーティション化する方法を説明しました。

BC4JとJClientにより、データベース対応の複数層のThinクライアントを作成し、デプロイできます。JClientでは、次の2つのオブジェクトを介してSwingコンポーネントをデータ・バインドできます。

このチュートリアルでのアプリケーションのパーティション化

Swing UIアプリケーションをパーティション化すると、異なる機能ブロックを別々の開発チームに割り当てることができます。各チームはそれぞれのコード・ブロックを別々に開発およびテストし、各機能ブロックをスタンドアロン・アプリケーションとして配布できます。

このチュートリアルでは、CustomerパーティションおよびOrdersパーティションと、それ自体はデータ・バインドされていないメイン・ウィンドウを作成しました。各ブロックのデータ・バインドの定義には、ビジネス・コンポーネント・クライアント・データ・モデルを使用しました。各パーティションのクライアント・データ・モデルは、ビジネス・コンポーネント・プロジェクト内の同一のスキーマに基づくため、パーティションを1つのアプリケーションにまとめることができました。パーティションを結合するために、Customerデータ・モデルおよびOrdersデータ・モデルのビュー・オブジェクトを含むルート・アプリケーション・モジュールを作成しました。

ルート・アプリケーション・モジュールに対して定義したクライアント・データ・モデルは、メイン・ウィンドウ(FormRootAppModule.java)のブートストラップ・コードにJUApplicationオブジェクトを作成するために使用しました。JUApplicationに含まれるルート・アプリケーション・モジュールへのランタイム接続により、組み立てられたパーティションに対して単一のJClientアプリケーション接続を次のように設定できました。

JUApplication app = JUMetaObjectManager.createApplicationObject("JClientProject.RootAppModule", null, new JUEnvInfoProvider());

チュートリアルでのアプリケーション・データ・バインド

2つのJClientフォームのデータ・バインドを行うために、メイン・アプリケーション・ウィンドウの処理ハンドラでは、パネル・バインドをJUApplicationオブジェクトに登録しました。メイン・ウィンドウのクラスでは、特定のクライアント・データ・モデル定義への参照を使用して、2つのパネル・バインド変数customerPanelBindingおよびordersPanelBindingを初期化しました。

private JUPanelBinding customerPanelBinding = new JUPanelBinding("JClientProject.RootAppModule", "CustomerAppModule1", null);
private JUPanelBinding ordersPanelBinding = new JUPanelBinding("JClientProject.RootAppModule", "OrdersAppModule1", null) ;

データ・モデル定義(JClientの .cpxファイルに含まれる)は、JUApplicationオブジェクトと特定のビュー・オブジェクトとの連携を可能にします。ただし、このチュートリアルではメイン・ウィンドウが表示される際にデータ・バインドを作成するのではなく、フォームを表示するボタンをユーザーがクリックし、ボタンに対応する処理ハンドラが起動された時点でデータ・バインドを作成します。この使用方法により、クライアントでデータの遅延ロードが許可され、不要なデータ・バインドの作成を回避できます。

データ・バインドを実行するために、各ボタンの処理ハンドラは、まず名前付きのパネル・バインドがすでに存在しているかどうかを判断します。

app.findFormBinding(CUSTOMER) == null

および

app.findFormBinding(ORDERS) == null

パネル・バインドが存在しない場合は、ユーザーがまだボタンをクリックしていないので、キー(CUSTOMERまたはORDERS)を使用して、JUApplicationオブジェクトのパネル・バインドのリストに、対応するパーティションのパネル・バインドが登録されます。

app.addFormBinding(CUSTOMER, customerPanelBinding);
customerForm.setPanelBinding(customerPanelBinding);

および

app.addFormBinding(ORDERS, ordersPanelBinding);
ordersForm.setPanelBinding(ordersPanelBinding);

最後に、登録されたcustomerPanelBindingおよびordersPanelBindingにより、CustomerパーティションおよびOrdersパーティションは、指定したクライアント・データ・モデル定義を使用してアプリケーション・モジュールに接続できるようになります。

各パーティションのキーを使用してパネル・バインドを登録することにより、アプリケーションはJUApplicationオブジェクトによって管理されるリストから特定のパネル・バインドを参照できます。JUApplicationオブジェクトにすでにパネル・バインドが登録されている場合、アプリケーションはビジネス・コンポーネントに対して問合せを再実行する必要はありません。ユーザーが次にフォームを表示すると、既存のパネル・バインドが再利用され、フォーム状態が保存されます。

 

ビジネス・コンポーネント用のSwingクライアントの開発の詳細は、次のリンクをクリックして、タスクベースのヘルプを参照してください。


関連項目

JClientフォームとビジネス・コンポーネントの使用
ビジネス・コンポーネントの開発

ビジネス・コンポーネント・チュートリアル