[ 
https://issues.apache.org/jira/browse/TOMAHAWK-1133?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12535568
 ] 

David Brainard commented on TOMAHAWK-1133:
------------------------------------------

Hi Zdenek ,

According to the API docs 
"we keep iterating through the list until we reach the end," 

i.e the list of row classes should be iterated till the end. 

consider a case in which the no of columns rendered in the first page is less 
than the size of the the list of rowclasses 
for e.g:
the no of rows rendered in the fist page is 3 but the size of rowclass list is 
6 as given in the example above(bug description),

Then the behavior should be something like this:
the rows in the first page should have the the first three items of the list 
assigned to them and the 3 rows in the next page should have the next 3 styles 
assigned to them since we have to iterate till the end of the rowclasses. Now 
that we have reached the end of the list the next page will have the rowclasses 
assigned from the starting of the list i.e the pattern of the rowclasses will 
be repeated for every 2 pages in this case.

But the behavior which we have now is something like as follows:
the rows in the first page have the classes assigned to them correctly but when 
we go to the next page we get the same first three rowclasses assigned to them 
in spite of the fact that we have not iterated till the end of the rowclasses 
list.

The actual problem is that the rowclasses are not iterated till the end. They 
are just iterated for every page from the starting. 
I have looked into this problem. The problem is in this piece of code in 
HtmlTableRendererBase

 if (nc == 0) {
                        // first column in table, start new row
                    beforeRow(facesContext, uiData);

                    HtmlRendererUtils.writePrettyLineSeparator(facesContext);
                    renderRowStart(facesContext, writer, uiData, styles, nr );
                }

The rowStyleIndex i.e nr which is passed to the method renderRowStart is the 
actual problem. Since it is a counter it starts every time from 0 and even when 
i navigate to the next page it starts from 0 so this causes the table to render 
the classes corresponding to the first page rather than the good classes.

this fails for the particular case where "no of rowclasses"  > "no of rows 
rendered in a particular page".

so if we pass the actual row no instead of the counter this will solve the 
problem. I am looking into it.


Thanks and Regards,
David Brainard Sounthiraraj.

> Data Scroller doesnt honor dynamic rowclasses during pagination
> ---------------------------------------------------------------
>
>                 Key: TOMAHAWK-1133
>                 URL: https://issues.apache.org/jira/browse/TOMAHAWK-1133
>             Project: MyFaces Tomahawk
>          Issue Type: Bug
>          Components: Data Scroller
>         Environment: Myfaces 1.1.5, Tomahawk 1.1.7snapshot, Tomahawk 1.1.6, 
> Tomcat 6.0
>            Reporter: David Brainard
>
> While using a data scroller with datatable if we specify the rowclasses 
> dynamically(through value binding) only the first page gets the rowclasses 
> assigned properly . When we try to do pagination and go to other page the 
> same rowclasses which were used in the first page repeats i.e the rowclasses 
> doesnt get assigned properly.
> for e.g;  if i have a tag defined like this
>                        <t:dataTable id="myDetailDataTable" var="row"
>                       value="#{testBean.dataList}" 
> columnClasses="#{testBean.styleClass}"
>                       headerClass="headerClass" footerClass="footerClass"
>                       rowClasses="#{testBean.rowClass}" 
> styleClass="dataTable" rows="3" >
> and my rowclass returns something like this
>        public String getRowClass() {
>               return "rowOdd,rowOdd,rowEven,rowEven,rowEven,rowOdd";
>       }
> in first page the generated rowclasses are correct which is as follws:
>             
>              1st row:rowOdd, 
>               2st row:rowOdd,
>              3st row: rowEven
> but when i navigate to next page the rowclasses assignment remains the same 
> as first page. 
>             1st row:rowOdd, 
>               2st row:rowOdd,
>              3st row: rowEven
> but it should be as follows:
>              1st row:rowEven, 
>               2st row:rowEven,
>              3st row: rowOdd
>                  

-- 
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