データ・バインディングは、バックエンド・ビジネス・サービスのデータにバインドされるSwingコンテナおよびコンポーネントを作成するためのJClientの機能です。JClientでは、データ・バインディングを実行する小規模なAPIを提供しています。このAPIはOracle ADFモデル・レイヤーと連動しています。このAPIは、JClientのブートストラップ・コードの組合せを介して、アプリケーション・ソース・コードで公開されます。
loadCpx()
をコールし、アプリケーションのメタデータ(DataBindings.cpx
ファイルで指定)をロードします。このメタデータは、インスタンスのADFデータ・コントロールおよびADFバインディング・コンテキストを使用して、ビジネス・サービスの実装インスタンス(ビジネス・コンポーネント・アプリケーション・モジュールのインスタンスなど)への接続を指定します。
setBindingContext()
をコールし、ADFバインディング・コンテキストをフレームまたはパネルで使用できるようにします。
createPanelBinding()
をコールし、Swingコンポーネント・モデルを介して、ビジネス・サービスに含まれるデータ・コレクションにアクセスするオブジェクトを作成します。
bindUIControl()
をコールし、JClientフォームまたはパネルの個々のコンポーネントに対するADFモデルを設定します。
Swingアプリケーションでデータ・バインディングを扱うには、各コンテナ(フレームまたはパネル)がパネル・バインディング・オブジェクトを作成するか、最初の作成元からパネル・バインディング・オブジェクトを取得する必要があります。最初のパネル・バインディングを作成するフレームにはJClientのブートストラップ・コードも含まれ、ここでビジネス・サービスへの接続が作成されます。アプリケーションで作成する2番目以降のコンテナは、最初のパネル・バインディングから連鎖するか、または関連のないデータを表示するために新しいパネル・バインディングを作成します。 アプリケーションのデータ・ビューを分割する方法に応じて、コンテナが新しいパネル・バインディングを設定するか、既存のパネル・バインディングを取得するかが決定されます。
JDeveloper 9.0.4以前のプロジェクトをJDeveloper 10gに移行した場合は、プロパティ・インスペクタでコントロールのModelまたはDocumentプロパティを選択することにより、コントロール・バインディングを操作できます。ただし、以前に作成したパネルおよびフォームでは、新しいADF形式のバインディング(データ・コントロール・パレットを使用して作成したバインディング)を使用しないでください。新しいバインディングと古いバインディングを同じパネルおよびフォームに混在させると動作しません。ただし、データ・コントロール・パレットを使用して新しいパネルおよびフォームを作成し、それらを既存のアプリケーションに追加することはできます。これらの新しいパネルおよびフォームでは、新しいADF形式のバインディングを使用できます。
プロパティ・インスペクタを使用して、カスタマイズするコントロールのモデル・バインディング・エディタを表示すると、JDeveloperは、バインディングの形式に適したバインディング・エディタ(JDeveloper9i以前用、またはJDeveloper 10gの新しいADF形式のバインディング用)を表示します。表示されるバインディング・エディタは、フォームまたはパネルで使用されているバインディング形式に適したバインディング・コードを生成します。
構造ウィンドウの「UIモデル」タブを使用したコントロール・バインディングの編集は、ADF形式のバインディング専用に予約されています。JDeveloper 10gでは、古い形式のバインディングでの新しいパネルおよびフォームの作成はサポートされていません。 古い形式のバインディングの操作を継続するには、JDeveloper9i以前で作成されたプロジェクトをJDeveloper 10gにインポートする必要があります。
JClientの移行の詳細は、JDeveloperヘルプの「Oracle9i JDeveloperリリース9.0.X JClientプロジェクトの移行」を参照してください。
データ・バインドされたコンテナを最も簡単に作成するには、JClientウィザードを使用します(「新規ギャラリ」の「Swing/JClient for ADF」フォルダを参照)。これらの2つのJClientウィザードを使用する場合、ソース・コードにはブートストラップ・コードと、パネル・バインディングの作成に必要なコンストラクタが含まれます。
これらの2つのウィザードを使用すると、JDeveloper内で簡単なドラッグ・アンド・ドロップによるUI設計が可能です。 特定のデータ・コントロール・オブジェクト(ビジネス・サービスのコレクション、構造化オブジェクト、属性、およびメソッドを含む)のブートストラップ・コードも生成されるため、JDeveloperのデータ・コントロール・パレットから追加するすべてのSwingコンポーネントは、データ・コントロール・オブジェクトに含まれるすべてのビジネス・サービスにアクセスできます。
最初に標準のフレームまたはパネル(JClientのウィザードを使用せずに生成されたフレームまたはパネル)を作成した場合、それに対してJClientのデータ・バインディング機能を使用可能にするには、次のようにして適切なJClientブートストラップ・コードをメイン・フレームに追加し、2番目のフレームでパネル・バインディングを扱うことができます。
BusinessCompViewName(getPanelBinding());
frame.setVisible(true);
BusinessCompViewName(new JUPanelBinding(getPanelBinding().getApplicationName(),null));
frame.setVisible(true);
最初のコールがフレーム・オブジェクトを作成し、パネル・バインディングを設定します。2番目のコールがフレームを表示します。
ウィザードで生成されるコードの詳細は、「生成されるJClientコードについて」を参照してください。
Copyright © 1997, 2004, Oracle. All rights reserved.