Wednesday Sep 12, 2012

Iterating selected rows in an ADF Faces table

In OTN Harvest May 2012; http://www.oracle.com/technetwork/developer-tools/adf/learnmore/may2012-otn-harvest-1652358.pdf I wrote about "Common mistake when iterating <af:table> rows". In this entry I showed code to access the row associated with a selected table row from the binding layer to avoid the problem of having to programmatically change the selected table row.

As it turns out, my solution only worked fro selected table rows that are in the current iterator query range. So here's a solution that works for all ranges

public String onButtonPress() {
  RowKeySet rks = table.getSelectedRowKeys();
  Iterator it = rks.iterator();
  while (it.hasNext()) {
   List selectedRowKeyPath = (List)it.next();            
   //table is the JSF component reference created using the table's binding
   //property         
   Row row = ((JUCtrlHierNodeBinding)table.getRowData(selectedRowKeyPath)).getRow();
   System.out.println("Print Test: " + row.getAttribute(1));
  }
   return null;
}


Saturday Nov 05, 2011

Accessing View Object UI hints from EL

View Objects can have UI hints defined in their General category. For example, you may want to set the Display Name, Display Name (Plural) and Description on Employees View Object that is based on an Employees entity representing the Employees table in the HR database sample schema. The page snippet below shows how you can access the UI hints on a View Object to display them a header information on an page. 

<af:panelGroupLayout id="pgl2" layout="horizontal">
<af:outputText value="#{bindings.allEmployeesIterator.hints['label']}," id="ot3"/>
<af:spacer width="10" height="10" id="s1"/>
<af:outputText value="#{bindings.allEmployeesIterator.hints['labelPlural']}, " id="ot2"/>
<af:spacer width="10" height="10" id="s2"/>
<af:outputText value="#{bindings.allEmployeesIterator.hints['TOOLTIP']} " id="ot1"/>
</af:panelGroupLayout>

So the Display Name property maps to UI hints "label", the Display Name (Plural) property to the UI hints "labelPlural" and the Description property to the "TOOLTIP" string.

These strings are defined in the oracle.jbo.AttributeHints class. For future-save programming you should consider reading the UI hint strings directly from this class.

To do so, expose the AttributeHints class to EL through a helper managed bean (put it to application scope for best performance) that exposes JavaBean properties for each of the strings.

Using such a helper bean, the above page snippets would look similar to this

<af:panelGroupLayout id="pgl2" layout="horizontal">
<af:outputText value="#{bindings.allEmployeesIterator.hints[helperBean.label]}," id="ot3"/>
<af:spacer width="10" height="10" id="s1"/>
<af:outputText value="#{bindings.allEmployeesIterator.hints[helperBean.labelPlural]}, "
id="ot2"/>
<af:spacer width="10" height="10" id="s2"/>
   ….


About

The Oracle JDeveloper forum ranks in the Top 5 of the most active forums on the Oracle Technology Network (OTN).



The OTN Harvest blog is a summary of selected topics posted on the OTN Oracle JDeveloper forum.



It is an effort to turn knowledge exchange into an interesting read for developers who enjoy little nuggets of wisdom





Frank Nimphius

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today