diff options
author | Matti Tahvonen <matti.tahvonen@itmill.com> | 2008-05-14 14:53:21 +0000 |
---|---|---|
committer | Matti Tahvonen <matti.tahvonen@itmill.com> | 2008-05-14 14:53:21 +0000 |
commit | 1b465e5c912f6e5a344f2a7ddccef376756e83c3 (patch) | |
tree | 63c9188bf609f4c3920301599cd73a383d6fa5c5 /src/com | |
parent | cec9c6bdcffde03fbfd69b3a1872e4399fc28213 (diff) | |
download | vaadin-framework-1b465e5c912f6e5a344f2a7ddccef376756e83c3.tar.gz vaadin-framework-1b465e5c912f6e5a344f2a7ddccef376756e83c3.zip |
#1647
svn changeset:4486/svn branch:trunk
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/itmill/toolkit/ui/Table.java | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/com/itmill/toolkit/ui/Table.java b/src/com/itmill/toolkit/ui/Table.java index 0b8fe1d42d..16d14171d8 100644 --- a/src/com/itmill/toolkit/ui/Table.java +++ b/src/com/itmill/toolkit/ui/Table.java @@ -283,6 +283,8 @@ public class Table extends AbstractSelect implements Action.Container, private int pageBufferFirstIndex; + private boolean containerChangeToBeRendered = false; + /* Table constructors *************************************************** */ /** @@ -1521,16 +1523,20 @@ public class Table extends AbstractSelect implements Action.Container, e.printStackTrace(); } - Integer value = (Integer) variables.get("reqfirstrow"); - if (value != null) { - reqFirstRowToPaint = value.intValue(); - } - value = (Integer) variables.get("reqrows"); - if (value != null) { - reqRowsToPaint = value.intValue(); - // sanity check - if (reqFirstRowToPaint + reqRowsToPaint > size()) { - reqRowsToPaint = size() - reqFirstRowToPaint; + // respect suggested rows only if table is not otherwise updated + // (row caches emptied by other event) + if (!containerChangeToBeRendered) { + Integer value = (Integer) variables.get("reqfirstrow"); + if (value != null) { + reqFirstRowToPaint = value.intValue(); + } + value = (Integer) variables.get("reqrows"); + if (value != null) { + reqRowsToPaint = value.intValue(); + // sanity check + if (reqFirstRowToPaint + reqRowsToPaint > size()) { + reqRowsToPaint = size() - reqFirstRowToPaint; + } } } clientNeedsContentRefresh = true; @@ -1858,6 +1864,7 @@ public class Table extends AbstractSelect implements Action.Container, // pageBuffer reqFirstRowToPaint = -1; reqRowsToPaint = -1; + containerChangeToBeRendered = false; target.addVariable(this, "reqrows", reqRowsToPaint); target.addVariable(this, "reqfirstrow", reqFirstRowToPaint); @@ -2074,6 +2081,7 @@ public class Table extends AbstractSelect implements Action.Container, } else { resetPageBuffer(); refreshRenderedCells(); + containerChangeToBeRendered = true; } requestRepaint(); } |