I have found an interesting issue, and I am wondering if I am misusing or 
overlooking something. I have a large CellTable that is vertically 
scrollable. I want to show all the rows at once instead of traditional 
pagination. So at the bottom of my table I have a row that the user can 
click to load 50 more rows. I have provided the table with a custom table 
builder (setTableBuilder(new Builder());). When the user clicks "load more" 
I query the data, add to the ListDataProvider and 
call table.setVisibleRange(0, dataProvider.getList().size());. 

I put a log statement in the 

@Override
public void buildRowImpl(Object rowValue, int absRowIndex) {
}

method to see when it was building rows. I notice that it would build 
0-dataProvider.getList().size() (all the rows), then it would build 
oldLength-dataProvider.getList().size() (the new rows). For instance, if I 
have 100 rows and then load 50 more it would build 0-150, and then rebuild 
100-50. What I want is for it to only build the new rows, obviously. 

So I start debugging to see why it is rebuilding the whole table each time. 
What I found was in com.google.gwt.user.cellview.client.HasDataPresenter<T> 
it would set the "redrawRequired" flag to true at line 1325:

else if (range1 == null && range0 != null && range0.getStart() == pageStart
        && (replaceDiff >= oldRowDataCount || replaceDiff > oldPageSize)) {
      // Redraw if the new data completely overlaps the old data.
 redrawRequired = true;
}

So my question is why does it think that the new data completely overlaps 
the old data?

Am I using something incorrectly, is there a better way? This gets to be 
quite a slow down when it has to redraw thousands of rows that don't need 
to be redrawn.

Thanks,
Will

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to