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

Leonardo Uribe commented on MYFACES-2137:
-----------------------------------------

I have some comments about the patch:

- We need to traverse facets and facets inside child components only once. Take 
a look at UIData.invokeOnComponent, you will see that facets are traverse only 
once with rowIndex=-1 (no row selected)
- Spec says: "Let rowsToProcess be the return from getRows().", but a result of 
0 from getRows() means all rows. In that case should rowsToProcess be 
getRowCount()? No.  The difference is that getRows() means the max rows to be 
displayed. That is because it is not necessary to traverse all rows when we 
only expect to traverse the rows we are going to display. note that we call 
isRowAvailable() to check if the row exists or not.
- Spec says: "Let rowIndex be the return from getFirst() - 1.", but then you 
would start the iteration with a rowIndex of -1 (if getFirst() returns 0) and 
you would end one row to early. For example you have 3 rows 0, 1 and 2, so 
visitTree would visit the rows -1, 0 and 1. So why should we start at 
getFirst() - 1? The intention is traverse all rows that exists. Maybe this is a 
detail on the algorithm used by ri, so we can ignore this part while we 
maintain the intention of the algorithm (but see comment below).
- Note that UIColum instances should be traverse only once (with rowIndex=-1), 
because traverse them per row just does not have sense. Also in my opinion, 
does not have sense how the algorithm works with facets of children component. 
Maybe it is a good idea to send a mail to jsr-314-comments at jcp.org saying 
this javadoc is not very clear (specially the last two points).



> JSF 2.0 Component Tree Visiting
> -------------------------------
>
>                 Key: MYFACES-2137
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2137
>             Project: MyFaces Core
>          Issue Type: New Feature
>          Components: JSR-314
>    Affects Versions: 2.0.0-alpha
>            Reporter: Matthias Weßendorf
>         Attachments: uidata_visit_tree.patch
>
>
> The Tree Visiting, part of jsf2.0, was already added to Trinidad 1.2.x to 
> improve things. 
> We just need to add the api/impl from that patch, to this project.
> see TRINIDAD-1368 for more.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to