incubator-adffaces-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Laurie Harper <>
Subject selectOneChoice as action source
Date Fri, 01 Sep 2006 04:49:23 GMT
I have a table showing row items with editable fields in some colums.  
The idea is that the row items can be edited 'in place' for simple  
updates. I also need to support a number of additional options,  
including a full-page edit dialog, for each row.

Because there are a number of possible actions, I'd like to use a  
selectOneChoice component to create a 'menu', and have a user  
selection trigger the appropriate action. I have this mostly working  
by setting autosubmit="true", partialTriggers="x", id="x",  
valueChangeListener="y". The value change listener clears the  
component value and launches the appropriate dialog, passing the  
model data object for the current row as a dialog parameter.

The problem is, the valueChangeListener method gets invoked during   
Apply Request Values. At this point, the model object hasn't been  
updated yet, so any 'in place edits' are not reflected in the object  
that's passed to the dialog.

What I need to do is defer fetching the row data and launching the  
dialog until after the Update Model Values phase -- but neither  
Update Model Values nor Invoke Application get fired --presumably  
because no events have been queued for those phases?

I thought I could either call setPhaseId(PhaseId.INVOKE_APPLICATION)  
on the ValueChangeEvent and/or call getViewRoot().queueEvent() to  
force processing to be deferred until later in the life-cycle, but I  
haven't been able to get that working.

Am I thinking about this all wrong? I suspect I may be on the wrong  
path entirely, given that if invalid inputs are supplied during 'in  
place' editing, I wont be able to update a model object to pass to  
the dialog anyway...

Any pointers would be most appreciated!
Laurie Harper
Open Source advocate, Java geek:
Founder, Zotech Software:

View raw message