Provide user with various PPR configurations
--------------------------------------------

                 Key: ADFFACES-88
                 URL: http://issues.apache.org/jira/browse/ADFFACES-88
             Project: MyFaces ADF-Faces
          Issue Type: Improvement
            Reporter: Simon Lessard


Currently, a PPR request will execute the whole life cycle for the complete 
component tree. However, only the PPR source, its listeners and the messages 
component will get rendered. This can lead to a problem when a validation fail 
on a field other than the PPR source. 

The most common use case is with a dynamic LoV selectOneChoice based on the 
selection of another. If another field later in the form is required (and thus 
most likely not filled at the time the PPR request is sent), validation will 
fail and the second LoV will never get populated.

So I would suggest to add some configuration tweaks to PPR. By default it could 
be the current behavior, but I see at least two other potential configurations:

1) Lifecycle is executed only for the PPR source, that configuration have the 
draw-back of altering the model, potentially putting it in an incoherent state. 
However, this configuration if rightly used would allow the previously defined 
use case easily.

2) Lifecycle is executed only for the PPR source, but the VariableResolver is 
changed for a new one using placeholder for update model values. That is, when 
update model is executed for the PPR source, the setValue of the ValueBinding 
will rather register the EL in the VariableResolver with the new value in a way 
such as if another EL read that value it will get the value that was pushed by 
the PPR request instead of the one in the model, without ever altering the true 
underlying model. This configuration have a draw-back as well though. If the 
code required to generate the second LoV reads directly in the model instead of 
using an EL, this configuration won't works.

A third configration would be to be able to push the value in the real model 
but be able to roll it back if the user click on an immediate button or hit the 
back button of his browser, but I don't have any serious idea on how to achieve 
that easily.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to