From: Matti Tahvonen Date: Wed, 14 May 2008 14:53:21 +0000 (+0000) Subject: #1647 X-Git-Tag: 6.7.0.beta1~4775 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=1b465e5c912f6e5a344f2a7ddccef376756e83c3;p=vaadin-framework.git #1647 svn changeset:4486/svn branch:trunk --- 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(); }