[
http://issues.apache.org/jira/browse/TOMAHAWK-538?page=comments#action_12423384
]
Torsten Krah commented on TOMAHAWK-538:
---------------------------------------
Maybe some fixes - comments appreciated.
The Renderer needs this:
String pageIndexVar = scroller.getPageIndexVar();
if (pageIndexVar != null)
{
int pageIndex = (scroller.getRowCount() > 0)?
scroller.getPageIndex() : 0;
+ if(scroller.getPageCount() < pageIndex)
+ pageIndex = scroller.getPageCount();
requestMap.put(pageIndexVar, new Integer(pageIndex));
}
The DataScroller this instead of the original one - look at the broadcast
method, there i think this case is handled too, the firstRow can everytime be
calculated with the index and the rows ( its done so in the broadcast method
too)- using only getFirst() won't work in certain cases, like described.
public int getFirstRow() {
int firstRowIndex = getUIData().getFirst();
int pageIndex = getPageIndex();
int pageCount = getPageCount();
if (pageIndex > pageCount) {
pageIndex = pageCount;
}
firstRowIndex = (pageIndex - 1) * getRows();
getUIData().setFirst(firstRowIndex);
return firstRowIndex;
}
Now the scroller works nearly - but i don't get the table updated in it - all
variables seems to have the right value.
If i call getUIData().setFirst(0) it redisplays the table and it works, but is
broken for other things - but if i calculate the variable and it is 0 - it
won't. Checked that it is 0 in all calls of getFirstRow with debug output -
won't work ... still needs to be fixed.
Is there any other variable responsible for that what i want to do maybe?
kind regards
> dataScoller displays wrong page after increasing row count on dataTable
> resulting in page count which is smaller than last displayed page.
> ------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: TOMAHAWK-538
> URL: http://issues.apache.org/jira/browse/TOMAHAWK-538
> Project: MyFaces Tomahawk
> Issue Type: Bug
> Components: Data Scroller
> Affects Versions: 1.1.3
> Environment: Tomcat 5.5, myfaces 1.1.3 and tomahawk 1.1.3, java 1.5
> Reporter: Torsten Krah
>
> Using a dataScoller to navigate through the extended dataTable with
> dynamically changable row Count doesnt work in all combinations.
> Take this example:
> You got a table, initially set to 10 rows and have 20 data sets to display.
> You get 2 pages in scroller with 10 rows each page.
> Now change row Count to 15.
> You get 2 pages, page one with 15 rows, page 2 with 5.
> Now change to page 2 - important!
> And now change the row Count to 20.
> You should get only one page with 20 rows now - but the scoller still shows
> the last 5 rows displayed and gets not updated correctly like it should be.
> It also shows still this ( printed some informations for the backing bean
> values ):
> 20 Customers found, 5 Customers showing , from 16 up to 20. Page 2 / 1
> It shows Page 2 of 1 - but it should be 1 of 1, the scroller gets not updated
> right, if the page count gets smaller than the last displayed one.
> kind regards
> Torsten
--
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