Dynamic user interfaces
Dynamic user interfaces are dynamically created portlets or pages.
They leverage the Dynamic UI Manager API.
The interface is not persisted in the portal database, and has a maximum lifetime of the user's session. The interface can be closed prior to the end of the session, either programmatically or by the user.
Dynamic UI is used for process integration: With static pages, managers must complete one request before proceeding to the next one. Using dynamic UIs, managers can open several requests simultaneously.
Users can navigate between static and dynamic pages, or change the window state of a dynamic portlet. Administrators cannot use Manage Pages to view a dynamic portlet or page, nor can you assign a unique name.
Dynamic pages
A dynamic page is an instance of an existing static page, called a page definition, which serves as a template from which all dynamic instances are created.
The page definition can be created by the administrator using XMLAccess or Manage Pages. The page definition includes.
- layout and content...
- containers
- portlets
- wires
- portlet preferences
Changes to the page definition do not affect the layout or content of dynamic pages that have already been launched. The layout and content of the dynamic page instance cannot be customized.
Users must have view rights to the page definition in order to open a dynamic instance on that page. Dynamic pages are not visible to anonymous users, even if anonymous users have view rights to the page definition.
The new dynamic page instance appears in the navigation under an extension node created just for containing dynamic pages, like task pages for business process integration. A single portal can have multiple extension nodes, one for each dynamic UI configuration. Static nodes added under the content topology of an extension node are not visible.
When a dynamic page is closed which a user currently has selected, the user is automatically redirected to another open dynamic page in the same configuration. If no sibling page exists, the redirection is determined by one of the following.
- The page indicated by the setDefaultRedirectPage() method of the DynamicUIManagementFactoryService interface.
- If setDefaultRedirectPage() is not used, the user is redirected to the page indicated by the defaultRedirectPage property in the DynamicUIManagerFactoryServiceImpl. This property is prefixed by the unique name of the extension node for the dynamic UI configuration. For example, two dynamic UI configurations could set this property as follows...
my.dynui.config.test1.defaultRedirectPage=page1.unique.name my.dynui.config.test2.defaultRedirectPage=page2.unique.name
- If the defaultRedirectPage property is not set, the user is redirected to the extension node for the configuration.
Hide the page definition from users by placing it in a sub tree of the content hierarchy inaccessible to the portal navigation. For example, task page definitions are created under a Task Page Definitions node accessible only to the administrator.
Dynamic portlets
Dynamic portlets can receive properties from the portlet that launches the dynamic UI. The task processing portlet, which is a component of process integration, is an example of a dynamic portlet.
Portlets are added to special containers designated as launch areas. Each dynamic portlet added to the page is placed in the column with the least number of portlets. If all of the content of a dynamic page is locked, any attempt to launch a dynamic portlet on that page throws an AddUIElementException.
- It is possible for a user to access edit mode for a dynamic portlet. However, the preferences are not persisted.
- For a user to launch a dynamic portlet, the user must have view rights to the portlet definition from which the dynamic portlet would be launched.
- Dynamic portlets cannot be moved on a dynamic page.
Dynamic UI configuration
A portal site can take advantage of the configuration provided by process integration, and support another dynamic UI configuration for a different purpose. The launching portlet can invoke a specific dynamic UI configuration by the unique name assigned to its extension node. Dynamic pages are assigned to the extension node for the configuration for which it is created.
Dynamic UI properties
Portlets pass properties to the dynamic UI using the property broker API. Properties can be set during or after launching the dynamic UI. The purpose of these properties is to convey any information to the target portlets needed to fulfill their task, for example, a calendar entry to be processed or a document to be opened.
Properties passed to a dynamic page are available to all portlets on the page. Properties passed to a dynamic portlet are available only for that portlet. Dynamic portlets declare their intention to receive dynamic properties using a preference setting in their descriptor.
For example, in a business process configuration, the My Tasks portlets sends the TaskID, ReturnPageID. and TaskUIHandle properties to the dynamic page. To receive these properties, the task processing portlet sets...
com.ibm.portal.pagecontext.enable = true
For IBM portlets, this is set as a configuration parameter. IBM portlets must also modify the servlet class entry of the web.xml file, specifying the class...
com.ibm.wps.pb.wrapper.PortletWrapper
If page properties are set multiple times before the context is delivered, only the latest parameter set is distributed to the portlets on the target page.
Shared dynamic UIs
A shared dynamic UI is a dynamic page or portlet in which only one shared instance can exist for a user at a given time. A portlet can explicitly launch a shared portlet or shared page using the addSharedPage() or addSharedPortlet() methods. When a shared dynamic UI instance already exists, it is reused. If not, a new instance is created and marked as either the shared portlet for a given page, or the shared page for a dynamic UI instance.
If a dynamic UI is launched as shared, subsequent launching of the UI using the non-shared methods (addPortlet() and addPage()) creates a new instance. To ensure the same shared instance is used, the launching portlet must consistently use the shared methods.
The scope of a shared portlet or shared page instance is restricted to a dynamic UI configuration. This means, for examples that a portlet can add a shared dynamic page in dynamic UI configuration A. When another portlet also tries to create a shared instance in dynamic UI configuration B, a new one is created.
See alsoOverview: Develop a dynamic UI configuration
Parent: Develop portlets