Or is it not possible for the celltable to only redraw new rows? Will it 
always redraw the whole table when adding to it?

On Monday, September 21, 2015 at 10:07:38 AM UTC-4, William Davis wrote:
>
> 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