Friday, 7 December 2012

9. UIX (User Interface XML) Framework

Oracle EBS uses:

  • UIX for UI Components (i.e. View part)
  • BC4J for business components (i.e. Model part)
  • And what OAF does is the programmatic binding among all these.

UIX framework is J2EE-based framework for building web applications and is based on MVC design pattern.
The main focus of UIX is the user presentation layer of an application. UIX is platform independent as it is implemented in the Java programming language. UIX development can be declarative, using uiXML, an XML language for creating UIX pages.

UIX includes a set of UI components and classes for rendering them:

UI Components: These are implemented as Java Beans. They include page layouts and simple UI objects that map to standard HTML controls, such as buttons, forms, and checkboxes. There are other complex components, such as trees, hide-show controls, LOV etc.

Renderers: These are Java classes for rendering the UI components to target clients/devices. For example, components are rendered as HTML for use in web browsers or as WML for use in mobile devices.
Classes for UIX Components are in the oracle.cabo.ui package.

uiXML: This is an XML language for programming UIX applications. uiXML provides a declarative way of creating web applications programmatically using UIX Java APIs. The pages, events, and any other items defined with uiXML elements are all transformed into Java objects behind the scenes. Below is an example of a uiXML element (button):

uiXML documents are written in a text format, where document represents page or a region.
Classes supporting uiXML are located in oracle.cabo.ui.xml and oracle.cabo.servlet.xml packages.

Pages in UIX
On the browser, "page" is just collection of HTML elements. However, while in developing phase, concept of "page" can be more complex, depending upon the declarative way used to create the page and renderers used.

A UIX page consists of a hierarchical set of components known as UI nodes. Some nodes define visible components, such as buttons, images, text fields, while others organize the layout and appearance of other nodes.
Nodes can have parents and children, and multiple nodes together form a tree-like structure used to represent a page's logical structure.

For example, left part below figure shows a logical hierarchy of UI nodes and right part shows the same hierarchy rendered as an HTML page.

Now in UIX, there is a java class for each UI nodes. These classes implement the UINode interface in the oracle.cabo.ui package. The UINode interface contains methods for the characteristics of nodes, such as:
public int getIndexedChildCount(RenderingContext context);
public UINode getIndexedChild(RenderingContext context, int childIndex);
public Enumeration getAttributeNames(RenderingContext context);
public Object getAttributeValue(RenderingContext context, AttributeKey attrKey);

No comments:

Post a Comment