Showing posts from December, 2009

Conditionally displaying search form parameters

ADF helps you to build search forms declaratively using model-driven af:query and af:quickQuery components. To learn more about this topic, please refer Chapter 26 Creating ADF Databound Search Forms in Fusion Dev. Guide. If you use ADF Business Components for building your business services, ViewCriteria defined on your ViewObject act as the model for the af:query component. af:query component (backed up with ViewCriteria) is smart enough to address most of the common use cases declaratively. However there may be some use case scenarios, where developers need to go beyond the declarative development approach and dirty their hands a bit:) One such scenario is displaying search form prameters, conditionally. In other words, parameters in the query panel needs to be displayed based on certain conditions. Let me try explaining a possible solution for this use case. Please remember that each query parameter displayed in af:query is modeled by a ViewCrieteriaItem instance. Apparently,

Customizing ELResolver to intercept the evaluation of ADF binding values

ELResolver enables customization of variable and property resolution behavior for EL expression evaluation. In case you are not familiar with this topic, please see one of my previous post to get a feel of this concept. Very recently, I noticed an interesting use case scenario related to this topic. Here the requirement is that, whenever business user modifies a date field displayed on the web UI, the same value needs to be converted to a specific time zone by the system based on certain business rules before saving to database. One possible solution is to use custom ELResolver to intercept the setters for the attribute value. Interestingly, a customized ELResolver created by sub classing javax.el.ELResolver work for EL expressions that use managed beans, but fail for ADF binding values - modified values are not getting passed to model . So, what next? Your friend is javax.el.MapELResolver here. Why should I specifically use javax.el.MapELResolver ? Before answering this questi

VIewObject based on 'pivot query'

I have seen few posts in ADF discussion forums asking for solutions to transpose database table rows in to columns. Apparently, this turns out to be s a query related to the underlying RDBMS. Attaching a simple demo application that transforms Employee Table in columnar from as shown below. [If you use Oracle 11g, pivot operator will help you to achieve the same behavior. The above sample is not using pivot operator] You can download the sample workspace from here . [Runs with Oracle JDeveloper 11g R1 PS1 + HR Schema]