詳細アイコン IDE内の表示

ステップを完了すると、Javaビジュアル・エディタのクライアント・フォームは次のように表示されます。

Javaビジュアル・エディタ、マスター・フォーム・ディテール表

構造ウィンドウには、最終的なUIコンポーネント階層が次のように表示されます。

構造ウィンドウ

アプリケーション・ナビゲータで、「FormPageDef.xml」をダブルクリックして、クライアント・フォームのページ定義ファイルを開きます。必要な場合は、エディタ・ウィンドウの「概要」をクリックして、概要エディタにファイルを表示します。

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ランタイムによって提供され、フォームのソースに特別なコードは必要ありません。