H Using ADF Desktop Integration Model API

This appendix describes how to use the ADF Desktop Integration Model API library to enable custom ApplicationModule methods to access attribute values passed during upload process when there are no actual rows available in a tree node binding.

H.1 About Temporary Row Object

Each ADF Table component is bound to a tree binding defined within a page definition. Each tree control binding has one (or more) tree nodes defined. For parent-child relationships, the tree binding has two nodes, one for parent table and another for child table. At runtime, the ADF Table component displays both parent and child attributes within each worksheet row. On upload, Oracle ADF Desktop Integration module sets attribute values to both the parent and child nodes.

In certain situations, a particular tree node may not have actual data rows available during Table.Upload request processing. Two common scenarios where a tree node may not have data are:

The tree node's iterator result set does not have any data rows available. This could be because of a query returning zero rows.

In a parent-child relationship, if the foreign key has not been populated in the parent table, the link between parent and child tree node may not contain actual rows.

There may be certain cases when even though there is no actual row available on the server, but you still want to allow the end user to enter values in the worksheet and upload them to the server. During upload, the ADF Desktop Integration module creates a temporary row object and stores the values uploaded from the worksheet row. Using the ADF Desktop Integration Model API, you can write custom Java code to access the temporary row object and collect its values.

To call your custom Java code during upload, you must expose your custom Java code through a pageDef action binding and then configure the ADF Table component's UpdateRowActionID or InsertAfterRowActionID to point to the pageDef action binding.

H.2 Introduction to ADF Desktop Integration Model API

While uploading data, if a tree node of the ADF Table component contains no actual rows, the Oracle ADF Desktop Integration module's remote servlet creates a temporary row object to store the attribute values. If you want to access the temporary row object and its attribute values, you must write custom Java code that uses the ADF Desktop Integration Model API library.

You typically add the ADF Desktop Integration Model API Library to your application's Model project. The library is an independent library and not included with any technology scope. you can add it through Project Properties dialog box.

To add ADF Desktop Integration Model API library to your project:

In the Application Navigator, right-click the Model project and choose Project Properties from the context menu.

In the Project Properties dialog, select Libraries and Classpath to view the list of libraries available.

H.3 ADF Desktop Integration Model API Classes and Methods

H.3.1 The oracle.adf.desktopintegration.model.ModelHelper Class

The ModelHelper class is a public class that exposes Model APIs. The following sections describe the methods available in the class.

H.3.1.1 The getAdfdiTempChildRow Method

The method is used to lookup temporary child row object (ViewRowImpl object) associated with a particular master row. When required, the servlet code creates the temporary ViewRowImpl object and stores attribute values when there are no actual ViewRowImpl objects available.

The method returns the temporary child ViewRowImpl object containing any attribute values sent from worksheet.

H.3.1.2 The getAdfdiTempRowForView Method

The method is used to lookup temporary child row object (ViewRowImpl object) associated with a particular view. When required, the servlet code creates the temporary ViewRowImpl object and stores attribute values when there are no actual ViewRowImpl objects available.

The method returns the temporary child ViewRowImpl object containing any attribute values sent from worksheet.

H.3.1.3 The getChildViewDef Method

The method is used to lookup polymorphic child view definition if the view link destination attributes specify one or more child discriminator attributes. The master row source attributes lookup the correct polymorphic child view definition through ViewObjectImpl.findViewDefFromDiscrValues API. If no child discriminator attributes are defined, or the child view is non-polymorphic, the default child ViewDefImpl object is returned.

The method returns the temporary child ViewRowImpl object containing any attribute values sent from worksheet, or returns null if the object is not found.