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