Showing posts from January, 2013

A drop of happiness !

The winners of Top 10 Java Professionals (Sponsored by eBay & MetricStream) have been declared.... This post does not conatin anything technical, rather sharing a  bit of personal glory. Check this out, if you are curious -

Cascading af:popup windows

This time I'm back with a very simple tip on af:popup. The use case requirement was to display popup on another popup and the developers do not want to add an af:dialog or af:panelWindow to the parent popup as it does not gives the look and feel that they are looking for. So the solution is to define the child popup inside the parent as nested. This makes sure that parent is displayed when child is made visible. What if one keep child outside of parent? Well,  if the child is kept outside of parent (note that parent popup, here, does not have af:dialog or af:panelWindow for holding its  contents) in JSF page, parent was getting closed while child is displayed. So the code snippet that worked for them look like as given below: <!-- Parent popup--> <af:popup id="p1" autoCancel="disabled" contentDelivery="lazyUncached"> <af:outputText id="ot1" value="test value"> <af:showPopupBehavior

Why findNodeByKeyPath() fails while reading selected rows in an af:table

This topic may looks simple for many of you. However some simple mistakes may spoil your entire day. Let me share a point that I learned recently while working with a customer. The requirements was to read all the selected rows from the multi-select table's selectionListener method defined in a managed bean. The code that is initially used for iterating over selected rows was as follows. Wrong Implementation public void wrongAPIForFindingSelectedRows(SelectionEvent selectionEvent) { RichTable _table = (RichTable)selectionEvent.getSource(); RowKeySet rks = _table.getSelectedRowKeys(); Iterator rksIterator = rks.iterator(); //Store original rowKey Object originalRowKey = _table.getRowKey(); try { while (rksIterator.hasNext()) { Object rowKey =; _table.setRowKey(rowKey); //stamp row //get current node object JUCtrlHierNodeBinding selectedNode =

OTN Yathra (Technology Conference) 2013 is here !!!

The Oracle ACE directors and Java champions are organizing an evangelist event called ‘OTNYathra 2013’ between 15th and 27th February 2013 across cities in India. The event is sponsored by the Oracle Technology Network. This yathra or tour will be a series of 6 conferences across 6 major cities in a time period of 2 weeks. There are some ADF Sessions as well, as part of this great event. Program dates and cities 16th Feb @ Delhi  18th Feb @ Mumbai  20th Feb @ Pune  22nd Feb @ Bangalore  25th Feb @ Hyderabad  27th Feb @ Chennai  Don't miss this event, its truly amazing! More details (speakers, topics, venue, date and time) can be found here: For registeration -

Prart 2 - Hiding Unwanted Operators in Advanced mode of af:query Component

This is in continuation of one of my old post Part1 - Hiding Unwanted Operators in Advanced mode of af:query Component . There I discussed how to remove built-in operators (displayed in Advanced mode of af:query component) for a view criteria item attribute by specifying <CompOper/> in the view object XML file against appropriate view criteria item. Recently I learned that, you can even  specify <CompOper/> against appropriate attributes in a view object as well. This makes your life much easier, because here you do not need to to repeat the same <CompOper/> definition across view criteria items appearing in multiple places. This also takes care of those attributes which are not included in view criteria during design time, still appearing at runtime in the search when some one adds them using Add Fields option in the Advanced mode of the query component. Note that JDeveloper does not provide any visual aid to restrict the operators for an attribute at design ti