ADF JClientアプリケーションでは、JClientフォームの作成に使用するUIコンテナによく似た一連のJClientオブジェクトを作成することで、Swingコントロールとビジネス・サービスのデータ・ソース間のデータ・バインディングを行います。これらのコンテナおよびそのJClient固有のコードは、JClientフォーム・ウィザードを使用して完全なアプリケーションを生成する際に確認できます。たとえば、DeptとEmpのビュー・オブジェクトに基づくマスター/ディテール形式のフォームの場合、ウィザードは次のクラスを生成します。
JClientFrame
を拡張するFrameDeptViewEmpView1
(JClientPanelインタフェースのダミー実装)
JPanel
を拡張し、JClientPanel
を実装するMDPanelDeptViewEmpView1
JPanel
を拡張し、JClientPanel
を実装するPanelDeptView
JPanel
を拡張し、JClientPanel
を実装するPanelEmpView1
ここで、JPanel
はSwingクラスです。JClientFrame
およびJClientPanel
はJClientの一部で、アプリケーションのデータ参照パネルを構成します。
JClientFrame
またはJPanel
により実装されるJClientPanel
インタフェースによって、JClientアプリケーションでは次のようにデータを扱うことができます。
設計段階では、JClientアプリケーションに追加する各データ参照パネルは、UIコントロールとビジネス・サービスの行セット・イテレータ間の対話を受渡しするコンテキストを、フレームまたは親パネル(マスター/ディテール・レイアウト・パネルなど)で作成されるパネル・バインディング・オブジェクトから取得します。JClientではデータ参照パネルの連鎖機能が提供されており、コードを追加する必要がありません。 たとえば、ウィザードでPanelDeptView
とPanelEmpView1
というデータ参照パネルが生成される場合、それらの間では、各JPanelがJClientPanel
インタフェースのsetPanelBinding()
メソッドおよびgetPanelBinding()
メソッドを実装しているため、パネル・バインディング(JUPanelBinding
)のインスタンスを介して同じデータ・コンテキストを共有します。
このパネル・バインディングを作成するフレームまたはパネルがあると、既存のパネル・バインディング・オブジェクトを共有する、または新しいパネル・バインディング・オブジェクトを作成する新規のデータ参照パネルを追加してJClientでアプリケーションを構築できます。
次に、JDeveloperのデータ・コントロール・パレットを使用してデータ・バインド・コントロールをデータ・パネルに1つずつ追加できます。Swingコンポーネントのレベルでは、データ・バインディングは、コントロールのdocumentまたはmodelプロパティにJClientコントロール・モデルを指定して設定されます。 実行時には、データ・パネル内の各コントロールが、そのコントロールのsetModel()
メソッドまたはsetDocument()
メソッドへの引数としてパネル・バインディング・オブジェクトをとることによってデータ・バインドされます。
データ・バインドされたパネルによってパネル・バインディングがどのように作成および使用されるかを理解するには、アプリケーションを実行した場合に、JClientフレームから始まって次のようなJClientコードが実行される際の処理を考えます。
main()
メソッドはアプリケーションをブートストラップします。 アプリケーションはDatabindings.cpx
ファイルのエントリに基づいて、バインディング・コンテキストを開始してOracle ADFデータ・コントロールをロードします。 次に初期化されたOracle ADFモデル・オブジェクトでバインディング・コンテキストをパネル・バインディングに渡し、Oracle ADFデータ・バインディングを作成します。
FrameDeptViewEmpView1
)が初期化されます。 このフレームを初期化すると、複数のデータ・コントロールのデータにバインドされるコンポーネントを含むOracle ADFモデル定義に基づいて、パネル・バインディング・オブジェクト(JUPanelBinding
)になります。 パネル・バインディングの作成は、Swingコンポーネントへのデータ・バインディングと、データ・パネルの連鎖を可能にするJClientの重要な機能です。
MDPanelDeptViewEmpView1
)を初期化し、setBindingContext()
メソッドを使用して新しいレイアウト・パネルにパネル・バインディングを設定します。
jbInit()
メソッドでは、データ参照(子)パネルの作成が行われます。 このため、JClientは子データ・パネルのバインディング(前述の例では、PanelDeptView
およびPanelEmpView1
)には共有バインディング・コンテキストを使用します。
Copyright © 1997, 2004, Oracle. All rights reserved.