You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Keith Wong (Commented) (JIRA)" <de...@myfaces.apache.org> on 2011/11/09 04:19:51 UTC

[jira] [Commented] (MYFACES-3385) Entered values for input fields conatined in a Composite Component are lost, if the CC is used in a datatable

    [ https://issues.apache.org/jira/browse/MYFACES-3385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13146744#comment-13146744 ] 

Keith Wong commented on MYFACES-3385:
-------------------------------------

I want to make a note that this issue also affects the components that using facets to store input components such as <p:cellEditor> of PrimeFaces.  For example,

    <p:dataTable var="customer" value="#{customers}">
        <p:column headerText="First Name">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{customer.firstName}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{customer.firstName}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>

        <p:column headerText="Options">
            <p:rowEditor/>
        </p:column>
    </p:dataTable>

In this case, the first row is always be overwritten by the last row whatever which row is editing.  See http://forum.primefaces.org/viewtopic.php?f=3&t=15349 for further discussion.
                
> Entered values for input fields conatined in a Composite Component are lost, if the CC is used in a datatable
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3385
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3385
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.1.2
>            Reporter: Michael Dietrich
>            Assignee: Leonardo Uribe
>            Priority: Critical
>             Fix For: 2.0.10, 2.1.4
>
>         Attachments: MYFACES-3385-1.patch, MyFacesCCUIData212Test.war
>
>
> Assume, a Composite Component contains input fields, i.e any subclass of EditableValueHolder (e.g. inputText, inputTextarea, ..). If this CC is than used in a subclass of UIData, e.g. a dataTable, the values entered in the CCs input fields get lost (despite for the last row in the Model of the UIData object).
> This seems to be related to the fact how the method "saveDescendantComponentStates(..)" of the UIData class checks, if a component has childs, whos state must be saved, before changing the rowIndex. The mentioned method only checks "child.getChildCount() > 0", but getChildCount() is 0 for a CC. I assume it would be necessary to check the FacetCount for a CC instead. 
> The attached WAR file can help to reproduce the issue with a simple example.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira