Changeset 5254

Show
Ignore:
Timestamp:
08/25/08 09:21:00 (3 months ago)
Author:
marc.englund@…
Message:

Fixes #2005 (server-side scrolling of table broken)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java

    r5194 r5254  
    7575    private int firstRowInViewPort = 0; 
    7676    private int pageLength = 15; 
     77    private int lastRequestedFirstvisible = 0; // to detect "serverside scroll" 
    7778 
    7879    private boolean showRowHeaders = false; 
     
    170171        firstvisible = uidl.hasVariable("firstvisible") ? uidl 
    171172                .getIntVariable("firstvisible") : 0; 
     173        if (firstvisible != lastRequestedFirstvisible) { 
     174            // received 'surprising' firstvisible from server: scroll there 
     175            firstRowInViewPort = firstvisible; 
     176            bodyContainer 
     177                    .setScrollPosition(firstvisible * tBody.getRowHeight()); 
     178        } 
    172179 
    173180        showRowHeaders = uidl.getBooleanAttribute("rowheaders"); 
     
    700707 
    701708        if (postLimit <= lastRendered && preLimit >= firstRendered) { 
     709            // remember which firstvisible we requested, in case the server has 
     710            // a differing opinion 
     711            lastRequestedFirstvisible = firstRowInViewPort; 
    702712            client.updateVariable(paintableId, "firstvisible", 
    703713                    firstRowInViewPort, false); 
     
    853863            client.updateVariable(paintableId, "lastToBeRendered", 
    854864                    lastToBeRendered, false); 
    855  
     865            // remember which firstvisible we requested, in case the server has 
     866            // a differing opinion 
     867            lastRequestedFirstvisible = firstRowInViewPort; 
    856868            client.updateVariable(paintableId, "firstvisible", 
    857869                    firstRowInViewPort, false);