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