Domain Portal

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

Thursday, 9 August 2007

Three Dependent List Boxes in af:table Component

Posted on 02:53 by Unknown
You may already have read Frank Nimphius blog post - ADF Faces: How-to create dependent list boxes in a table. Frank describes in his blog how two dependent list boxes can be implemented in af:table component. He implements dependency between Departments and Employees from standard HR schema.

One day I have decided to implement three dependent list boxes in af:table. I thought it will be simple - have applied the same steps as Frank describes and enabled partial triggering on third list based on first and second. However, things aren't always simple - it was not working in such way. But, I have found a solution and implemented it as sample application - DependentListBoxesThree.zip.

Implemented sample application is based on standard HR schema, also the same additional table as in Frank sample is used - VACATIONREQUESTS. However, table is updated with LOCATION_ID column and foreign key is created that references LOCATIONS table. SQL script for table update you will find in application archive.

Sample is based on solution available in Frank blog, so I will describe only those things I have added to make three dependent list boxes work. I have implemented dependency between LOCATIONS, DEPARTMENTS and EMPLOYEES tables from HR schema.

Steps I have applied:

1. In Model layer implement read-only View Object - DepartmentsCheckView. This View Object will be used to check specified department availability in particular location.


2. Open Vacationrequests Entity Object edit window and select Refresh After Insert for Approved attribute.


3. In View layer, for all iterators related to list boxes dependency set StateValidation="false". This will help to avoid JBO-35007 error, this error was generated sometimes for me during sample testing. More information about this error you can find in Chris Muir blog post - Bah! What is JBO-35007.

4. The main problem was to refresh third list box, when second or first list boxes are changed. When second list box is changed, the same solution as for first and second is applied. However, when first is changed, second list changes and third list should appear empty as value in second list is not selected. For this purpose in getEmployeesSelectItems() method checkDepartmentByLocation is invoked. It accepts two parameters - depId and locId and returns 0 or 1. Returned value helps to determine how third list should be generated.


checkDepartmentByLocation method is implemented in Application Module class:


5. List box for employees is created based on EmployeesView2 from DepartmentsView1.


And now will show how it works. Three dependent list boxes:


It is possible to create new row, you can select location, department and employee from list available for selected department. Also notice, that in fourth row I have changed location from Munich to South San Francisco and you can choose department, but can't select employee as no department is currently selected:

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...
  • Multiple LOV's per Attribute in JDeveloper 11g
    During OOW 2008 I have attended Steve Muench talk about new features in ADF Business Components available in 11g release - Oracle ADF: New D...
  • JBO-25058 and JBO-26001 exceptions
    In a case if you will get JBO-25058 and JBO-26001 exceptions after running application developed with Oracle ADF in JDeveloper 11g, most pro...
  • Oracle Always Rocks !
    This song was performed at Oracle OpenWorld 2007, after Larry Ellison and Safra Catz keynote - Sunday Night Live—30 Years Behind The Scenes ...
  • JDeveloper/ADF News from Oracle OpenWorld 2008
    This week I'm in San Francisco, attending Oracle OpenWorld 2008 conference. One of the main news for me, announced on Ted Farrell keyno...
  • JDev/ADF samples list
    This week, Steve Muench on his examples page have added a link to my JDev/ADF samples list . Thanks, I'm very proud of this - it is co...
  • Using #{row.rowKeyStr} property with Composite View Object
    Synchronizing view and edit pages in ADF is pretty easy. Let's say, in view page we have a read-only table and in edit page - editable f...
  • Oracle Fusion Middleware 11g Technology Preview 3 - whats included?
    Probably almost everyone have noticed Christmas gift from Oracle - JDeveloper 11g Technology Preview 3 . What new things are inside this gif...
  • Three Dependent List Boxes in af:table Component
    You may already have read Frank Nimphius blog post - ADF Faces: How-to create dependent list boxes in a table . Frank describes in his blog ...
  • Oracle Open World 2008 - Abstract Accepted
    I have very exciting news - my abstract for Oracle Open World 2008 session is accepted by Oracle and I will represent Vgo Software on this...

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)
  • ▼  2007 (65)
    • ►  December (6)
    • ►  November (7)
    • ►  October (6)
    • ►  September (4)
    • ▼  August (3)
      • ADF Task Flow in JDeveloper 11g
      • Create multiple rows in Oracle ADF
      • Three Dependent List Boxes in af:table Component
    • ►  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