Posts tagged design time at run time
In a recent post I wrote how wonderful the ADF support for user level customizations or personalizations is, and then I went on to explain how the user can be enabled to remove her own personalizations (http://technology.amis.nl/2012/09/27/adf-undo-the-users-page-personalizations-query-and-manipulate-mds/). This article a sequel to that story. It will introduce the capability for one user to clone the personalizations from another user. This means at the background that the document that contains the customizations for a page for the ‘source user’ is read and a new document with the exact same contents is written for the ‘target user’ who will then have personalizations that are at that time exactly the same as those of the source user. There is no link between the two documents – they are both on their own. Any pre-existing personalizations for the target user are lost in this process.
Note: I do not talk about the privileges that you want to define in order to not have anyone copying from just anyone else. Also note that I discuss cloning the personalizations for a single page only. Copying all personalizations from one user to another however is a very simple extension of what More >
Creating reusable ADF Library with generic live resource bundle editing functionality and reusing it in any ADF application1
In previous articles, I have introduced functionality to centralize management of boilerplate text elements such as prompt, title, hint text and messages in resource bundles. This also allows for language or user group and other context sensitive values for these boilerplate text elements. The resource bundles, as was demonstrated, can be backed by database tables, refreshed at run time and even be edited from within the JSF application itself. The last installment in the series before this one introduced an approach that allows for live page editing with minimal impact on the page itself – through run time UI component tree manipulation. However, the code for handling the live editing and dealing with the resource bundles was still part of the application making use of that functionality. This article demonstrates how this generic functionality can be isolated in a separate ADF application, deployed to an ADF Library and reused in one or many different ADF applications.
Live resource bundle entry editing in a generic way through declarative component and UI component tree manipulation0
In a series of five articles I have discussed how boilerplate text elements such as prompts and labels could and should be taken out of pages and centralized in resource bundles. I have explained how resource bundles can be implemented in database tables, how the bundles can be refreshed at run time and how different user groups can be served with different resource bundles. The previous article demonstrated how text properties can be edited at run time, in the context of the application.
The approach discussed for live text editing works fine. However, its current implementation requires specific manipulation – of every individual page. Each page contains a popup component and each component to be edited needs to have an associated showPopupBehavior or even a commandImageLink.
This article outlines a more generic approach that requires virtually no page or component specific preparation. The popup is takes out of the page into a page fragment. This page fragment is included in every page using a single declarative component tag. Via a phaseListener on the f:view tag, the UIComponent tree of every page is programmatically manipulated before being rendered. The manipulation More >
In a number of prior articles I have discussed how resource bundles are used in ADF applications to centralize boilerplate text elements – and how such resource bundles can be implemented in the database. I have shown how various groups of users can be served with different sets of resource bundle entries (context sensitive) and how resource bundles can be refreshed at run time, without redeployment or even restart of the application. Building on top of these earlier steps, I will now add functionality to the demo application to edit the resource bundle entries live and in context of the application. That means: a user (with the proper authorization) can bring up a boilerplate text editor in the context of a specific UI component and edit the resource bundle entries associated with that component – for each of the supported languages and each of the supported context values.
Any changes made while editing are recorded in the database table under the resource bundle and can be applied to the running application through the refresh resource bundle functionality introduced earlier on.
The Patch Set 3 release of Oracle Fusion Middleware hit the streets a few days back. For many of the FMW components, this release is one that fixes bugs, stabilizes, provides better integration and perhaps adds a feature or two. Nothing major really. However, for WebCenter this Patch Set 3 is pretty substantial, in terms of new functionality! Especially when it comes to ‘design time @ run time’ and the availability of services around social networking and collaboration as well as content integration, PS3 is quite impressive. In a recent article I demonstrated one of the PS3 Design Time at Run Time features: ‘create data controls at run time’: http://technology.amis.nl/blog/10555/webcenter-11gr1-ps3-design-time-at-run-time-with-a-vengeance-introducing-run-time-data-controls-and-data-visualizations.
This article discusses another interesting piece of functionality that hands over control to run time administrators, content editors and perhaps even end users: the Polls Service. Through the Polls Service, surveys or polls can be created at run time. Questions can be defined, the results can be analyzed and administration facilities are provided – such as when the poll opens and closes More >
WebCenter 11gR1 PS3 – Design Time at Run Time with a Vengeance – introducing run time Data Controls and Data Visualizations3
The concept of design time @ run time that empowers application administrators and even end users to influence the application after it has been deployed has been gaining traction over the last few years. Bit by bit, run time customization facilities have made their way into Fusion Middleware. In the form of the SOA Composer, the BPM Process Composer, custom customization in ADF and various WebCenter features – most prominently the Composer framework.
The recent 11gR1 Patch Set 3 release has brought design time @ run time to the next level. In terms of functional richness as well as ease of use. Design Time at Run Time enables run time application administrators to not only change the layout of existing pages as well as add new content – static HTML or live Portlets -, but also to create new pages, edit the navigation structure of the application, change component properties and skin-attributes, create data controls and create and edit taskflows. Many of the application aspects that until recently were the sole discretion of the application developer are now available at runtime to privileged users. All in aid of agility and quick time to market.
This article gives a very rapid More >