Domain Portal

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Tuesday, 1 January 2008

Complex List-Of-Values (LOV) in Oracle ADF

Posted on 05:23 by Unknown
My first post in 2008 :-)

Today I will explain how to develop LOV component with three dependent tables and to return a set of values from LOV to parent table. Sample application - LOVComplex.zip is based on HR schema, you can find it in Oracle XE database. However, custom VACATIONREQUESTS table is used as well, it is used to implement three dependent columns. You can find information about this table and needed scripts in my previous post - Three Dependent List Boxes in af:table Component.

The main problem I'm describing in this post is about how to return several values from LOV component and update parent table with selected values from backing bean.

In Model layer I have generated four Entity objects - Department, Employees, Locations and Vacationrequests. Four View objects are generated as well. In HrModule I have enabled dependency between three View objects by adding EmployeesView4 instance into DepartmentsView3 instance.


In View layer I have created two pages - main and lov. First page contains three dependent columns, values in those columns can be changed using LOV component. Second page provides LOV component - three dependent tables. Page flow for developed sample application:


Now I will describe in three steps, how LOV with three dependent tables works, how values from LOV are returned and how parent table is refreshed.

1. LOV - three dependent tables

Dependent tables I have created by generating Master Table - Detail Table components from Data Control. I have generated two such components. However, in second component I removed Master table and have wired Detail table Employees to Departments table from first Master Table - Detail Table component. I have wired it by setting AutoSubmit=true for af:tableSelectOne component in Departments table and by setting PartialTriggers=departments on Employees table.

2. LOV - Set button

Set button in LOV window have setButton_action() method binded. Also this button contains af:returnActionListener component, this component is used to close LOV window when Set button is pressed. Let's concentrate on setButton_action() method:


This method is invoked when Set button is pressed. Iterators of all three dependent tables are accessed here and Id's are retrieved. Retrieved Id's are stored in valueHolder managed bean.

3. Parent table - refreshOnReturn()

When values in LOV are selected and and LOV is closed, ReturnListener associated with LOV button in parent table is invoked. refreshOnReturn() method retrieves returned values stored in managed bean and sets those values for current row in table:


When new values are set - refreshCurrentPage() method is invoked, this method executes refresh for current page. To make it work, don't forget to put PartialSubmit=true on button that invokes LOV component.

All steps are described, now I will show how it works. Table contains three dependent columns - LocationId, DepartmentId and EmployeeId. Values for those columns are set using LOV component. Table:


We can select any row in this table we want to update and press LOV button - LOV component will be opened:


You can notice values I have selected in LOV - 1700, 30, 117. When Set button is pressed - row in parent table is updated with selected values:


When running sample application, don't forget to add adf-faces-impl.jar and jsf-impl.jar to application's WEB-INF\lib directory.
Email ThisBlogThis!Share to XShare to Facebook
Posted in ADF | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Groovy - Multiple LOV's per Attribute in JDeveloper 11g
    I was blogging previously about multiple LOV's per attribute functionality. I was using RowImpl class for View object in order to calcu...
  • External Transaction Service in Oracle TopLink
    I have developed sample application, in order to demonstrate how to use External Transaction Service (ETS), when Oracle TopLink is used in M...
  • Workaround for Null Value Bug in ADF List Of Values 11g
    Those of you, who are using List Of Values (LOV) component in ADF 11g, most probably already have noticed bug related to Null value. Simple ...
  • Trip to US
    I'm in US this week, Connecticut. Here is the same weather as in Lithuania, it's winter with about -5 degrees in Celsius.
  • Oracle ADF - between 4GL and J2EE is only one step
    According to ADF architecture described in Oracle JDeveloper 10g (10.1.3) Developer's Guide Section 1.1.1 - Framework Architecture and S...
  • Creating new row using CreateInsert operation
    Sample application - CreateInsert.zip , demonstrates how to create editable table with 'create new row' functionality in ADF BC. We ...
  • Show Buttons based on Disclosed Tab
    In 11g it becomes quite common use case to structure application page with tabbed panels. If you develop your pages based on templates, most...
  • Multilanguage in fixed af:selectOneChoice ADF Faces component
    If someone will face a problem how to enable multilanguage support in fixed af:selectOneChoice component, or simply how to bind fixed af:sel...
  • JDeveloper 11g on Mac OS X Leopard
    I'm using Apple Mac Book Pro for about half of a year, but shame for me all this time I was running Windows OS using Apple Boot Camp so...
  • Why I'm here?
    Oracle for me is more then technology, it is a way how I think. So, I'm creating this blog in order to express my knowledge in Oracle Fu...

Categories

  • ADF
  • Apex
  • Apple
  • BPEL
  • Events
  • Forms
  • Groovy
  • JDeveloper 11g
  • Nomination
  • ODTUG Kaleidoscope
  • OFUG
  • Oracle Magazine
  • Oracle OpenWorld
  • Security
  • SOA
  • Spatial
  • TopLink
  • Traveling
  • Uncategorized
  • Vgo Software
  • Web Services
  • WebCenter
  • WebLogic
  • Workarounds

Blog Archive

  • ▼  2008 (72)
    • ►  December (2)
    • ►  November (3)
    • ►  October (9)
    • ►  September (4)
    • ►  August (9)
    • ►  July (6)
    • ►  June (10)
    • ►  May (4)
    • ►  April (5)
    • ►  March (7)
    • ►  February (5)
    • ▼  January (8)
      • Athens - Warm and Friendly City
      • Using af:popup Component in JDeveloper 11g
      • Trip to US
      • Oracle to acquire BEA
      • ODTUG Kaleidoscope '08 - Abstract Accepted
      • Complex Calculated Values in Oracle ADF af:table C...
      • Hints for List-Of-Values (LOV) in JDeveloper 11g TP3
      • Complex List-Of-Values (LOV) in Oracle ADF
  • ►  2007 (65)
    • ►  December (6)
    • ►  November (7)
    • ►  October (6)
    • ►  September (4)
    • ►  August (3)
    • ►  July (4)
    • ►  June (6)
    • ►  May (5)
    • ►  April (6)
    • ►  March (4)
    • ►  February (5)
    • ►  January (9)
  • ►  2006 (9)
    • ►  December (9)
Powered by Blogger.

About Me

Unknown
View my complete profile