When you complete the steps, the client form in the Java visual editor should look similar to this:
In the Structure window, you should see the final UI component hierarchy:
In the Application Navigator, double-click FormPageDef.xml to open the page definition file for the client form. If necessary, click Overview in the editor window to view the file in the overview editor.
When you dropped OrderItemsPanel.java on the form in the visual editor to add the detail panel to the client form, JDeveloper added the second page executable view_OrderItemsPanelPageDef to the page definition file. When the application runs, the binding container of the client form instantiates. To access objects in the panels added to the client form, the client binding container instantiates the binding containers represented by view_PanelOrdersView1HelperPageDef and view_OrderItemsPanelPageDef.
When you run your application, the Log window opens in JDeveloper. Then you will see the application UI you have created without writing any code:
Click the navigation buttons and you will see ADF Swing manage data object currency between the master form and detail table.
When you design your client form with Oracle ADF data bindings, any UI control that shares the same ADF iterator binding will automatically share that iterator's data object currency cursor. The currency cursor is the way the iterator keeps track of which data object defines the start of the range of objects to display. (The end of the range is determined by the
RangeSize property of the iterator binding.)
In the completed client form, the master panel and the detail panel each use their own iterator binding. When the application is run, each panel creates an ADF binding context, which gets populated with the model binding objects from the panel's definition file. Each panel initializes the bindings with method calls like
component.setModel() that create ADF bindings appropriate to each component. In the case of the navigation bar in the detail panel, an ADF iterator binding instance is created:
jUNavigationBar1.setModel(JUNavigationBar.createViewBinding(panelBinding, jUNavigationBar1, "OrderItemsView2", null, "OrderItemsView2Iterator"));
The iterator binding invokes query methods (defined by the ADF data control) that retrieve the data objects of the referenced collection. The iterator binding also manages the currency of that collection's current data objects.
The navigation bar relies on the currency management capability of the iterator binding to update the current data object whenever the user clicks the navigation bar's Next, Previous, First, and Last buttons. When users click a navigation button in the master panel, they will see the updated values of the attribute-bound UI controls in the current data object. In the detail panel, by contrast, when users click a navigation button, the next set of data objects displays in the collection-bound UI control. Coordination between the master and detail is also handled by the iterator bindings.
The benefits of data object currency and master-detail coordination are provided by the Oracle ADF runtime and require no special code in your form's source.
Copyright © 1997, 2009, Oracle. All rights reserved.