ステップを完了すると、Javaビジュアル・エディタのクライアント・フォームは次のように表示されます。
構造ウィンドウには、最終的なUIコンポーネント階層が次のように表示されます。
アプリケーション・ナビゲータで、「FormPageDef.xml」をダブルクリックして、クライアント・フォームのページ定義ファイルを開きます。必要な場合は、エディタ・ウィンドウの「概要」をクリックして、概要エディタにファイルを表示します。
「OrderItemsPanel.java」をビジュアル・エディタのフォームにドロップしてディテール・パネルをクライアント・フォームに追加したときに、JDeveloperでは、2番目のページ実行可能ファイル「 view_OrderItemsPanelPageDef」がページ定義ファイルに追加されています。アプリケーションが実行されると、クライアント・フォームのバインディング・コンテナがインスタンス化されます。クライアント・フォームに追加したパネル内のオブジェクトにアクセスするために、クライアント・バインディング・コンテナによって、「
view_PanelOrdersView1HelperPageDef」および「
view_OrderItemsPanelPageDef」で表されているバインディング・コンテナがインスタンス化されます。
アプリケーションを実行すると、JDeveloperでログ・ウィンドウが開きます。次に、コードを作成せずに作成したアプリケーションUIを確認します。
ナビゲーション・ボタンをクリックすると、マスター・フォームとディテール表に、ADF Swing管理データ・オブジェクトの現在位置のデータが表示されます。
Oracle ADFデータ・バインディングを使用してクライアント・フォームを設計すると、同じADFイテレータ・バインディングを共有するUIコントロールでは、そのイテレータのデータ・オブジェクトの現在位置カーソルが自動的に共有されます。現在位置カーソルは、表示するオブジェクト範囲の開始位置を定義しているデータ・オブジェクトをイテレータで管理する手段です(範囲の終了位置は、イテレータ・バインディングのRangeSize
プロパティによって決まります)。
完了したクライアント・フォームでは、マスター・パネルとディテール・パネルで、それぞれ独自のイテレータ・バインディングが使用されます。アプリケーションを実行すると、各パネルによってADFバインディング・コンテキストが作成され、パネルのページ定義ファイルからモデル・バインディング・オブジェクトが移入されます。各パネルでは、各コンポーネントに適したADFバインディングを作成するcomponent.setModel()
などのメソッド・コールを使用してバインディングが初期化されます。ディテール・パネルのナビゲーション・バーの場合は、次のようにADFイテレータ・バインディング・インスタンスが作成されます。
jUNavigationBar1.setModel(JUNavigationBar.createViewBinding(panelBinding,
jUNavigationBar1,
"OrderItemsView2", null, "OrderItemsView2Iterator"));
イテレータ・バインディングによって、参照先コレクションのデータ・オブジェクトを取得する問合せメソッド(ADFデータ・コントロールで定義)が起動されます。イテレータ・バインディングでは、そのコレクションの現行データ・オブジェクトの現在位置も管理されます。
ナビゲーション・バーは、ユーザーがナビゲーション・バーの「Next」、「Previous」、「First」および「Last」ボタンをクリックしたときに必ず現行データ・オブジェクトを更新するために、イテレータ・バインディングの現在位置管理機能に依存しています。ユーザーがマスター・パネルのナビゲーション・ボタンをクリックすると、現行データ・オブジェクトの属性バインディングされたUIコントロールの更新された値が表示されます。一方、ディテール・パネルでは、ユーザーがナビゲーション・ボタンをクリックすると、データ・オブジェクトの次のセットがコレクション・バインドされたUIコントロールに表示されます。マスターとディテールの間の整合も、イテレータ・バインディングによって処理されます。
データ・オブジェクトの現在位置とマスター/ディテール整合の利点はOracle ADFランタイムによって提供され、フォームのソースに特別なコードは必要ありません。
Copyright © 1997, 2009, Oracle. All rights reserved.