Sunday, 30 September 2012

4. Regions in OA Framework

The view part in OAF consist of pages which in turn contains regions and items.
Regions act as containers for different items and there can be multiple regions inside one region. These are mainly used to organize the contents of pages.
In OAF, every item and region is a java bean.

OA Framework offers lots of regions which helps in building the application easier. I am just providing a brief description of some of these regions:

PageLayout Region

By default this is the top most region for any OAF page. We can create any number of regions/items as children of this region. It provides some common functionalities to all pages like footer (privacy & copyright links), root AM, window title, title, function name etc.. 

Bean: oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean

DefaultSingleColumn Region

This region is used for holding items in single column. Suppose we added 4 items inside this region, then all these item appear in one single column as shown below:

Bean: oracle.apps.fnd.framework.webui.beans.layout.OADefaultSingleColumnBean

DefaultDoubleColumn Region

OAF DefaultDoubleColumn region is used to hold items in two columns. Prompt of items will be right justified and the input fields will be left justified.
For example as shown below, six items are added under this region which appears in two columns (3 items in each):

Bean: oracle.apps.fnd.framework.webui.beans.layout.OADefaultDoubleColumnBean

MessageComponentLayout Region

It serves the multiple column display of components in an OAF page and also satisfies the standard UI guidelines. messageComponentLayout region set Rows =x and columns =y in property inspector. Now this is used instead of DefaultSingleColumn and DefaultDoubleColumn.

TableLayout, RowLayout, CellFormat Region

We can create our items using messageComponentLayout region by setting number of rows and columns. However if that doesn't satisfy our requirement, then we can use tableLayout region and can place the items manually as we want. It provides 2 regions (rowLayout & cellFormat) using which we can have different number of columns for each row. All together, these 3 regions work as follows:
  • TableLayout can contain multiple rowLayout, each corresponding to a row.
  • RowLayout contains multiple cellFormat, each corresponding to a column.
  • Finally, inside cellFormat region, we can add different items.

Query Bean Region

When we want to perform a search on a page, instead of creating different items for criteria fields and serch button, we can use query region. It provides built in functionality such as search panel ,advanced search panel and Views Panel as shown below:

Bean: oracle.apps.fnd.framework.webui.beans.layout.OAQueryBean

HideShow Region

Using this region, we can show or hide regions or items which are inside this region. Also we can set default as hidden or shown on page load.

Bean: oracle.apps.fnd.framework.webui.beans.layout.OADefaultHideShowBean

PageButtonBar Region

If we want to show some items at pagelayout level, we can use pageButtonBar region as direct child of pageLayout region. Items under this region will be displayed at bottom as well as at top of the page.

Bean: oracle.apps.fnd.framework.webui.beans.nav.OAPageButtonBarBean

Table Region

Table region is used to display data in tabular form. It also supports other functionalities such as single/multiple selection, sorting.. 

Bean:  oracle.apps.fnd.framework.webui.beans.table.OATableBean

AdvancedTable Region

Advanced table extends the functionality of simple table region. It provides declarative support for these functionalities for which we to write code if using simple table region. Advanced table has many rich features, some of which can be like a table can now have an instruction text and even a tip, also table can have a navigation bar, selection column, add rows button, control bar, recalculate and many more.

Bean: oracle.apps.fnd.framework.webui.beans.table.OAAdvancedTableBean

ContentContainer Region

This region has some special properties which differentiates it from other regions. It can have different background color which can be set using shade property. It can have border all around so that it can be easily identified as separate region as shown below:

Bean: oracle.apps.fnd.framework.webui.beans.layout.OAContentContainerBean

FlowLayout Region

When we want to associate an item (mainly a button) with table or advanced table, we can create a flowLayout region. This is much easier than using tableLayout/rowLayout/cellFormat regions for performing this task.

Bean: oracle.apps.fnd.framework.webui.beans.layout.OAFlowLayoutBean

Switcher Region

Switcher region is used to dynamically switch between the items displyed in a region. It is similar to CASE statement used in programming languages. For example, using this we can show an item on one condition and hide/disable the same on another condition.

Bean: oracle.apps.fnd.framework.webui.beans.OASwitcherBean

Train Region

Suppose we have a scenario where to complete one transaction we have to navigate multiple pages such as step1, step2...
Here we can use train region which provides built in functionality for showing different stages of transaction and highlight active page.

Bean:  oracle.apps.fnd.framework.webui.beans.nav.OATrainBean

hGrid Region

This region is used when we want to display information in hierarchial structure.

Bean: oracle.apps.fnd.framework.webui.beans.table.OAHGridBean


  1. Hi,

    Do you think its possible to do the same but in reverse? From OAF Region to ADF Application.


  2. is it possible to have multiple column layout instead of single or double column??