summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorMatti Tahvonen <matti.tahvonen@itmill.com>2008-05-14 14:53:21 +0000
committerMatti Tahvonen <matti.tahvonen@itmill.com>2008-05-14 14:53:21 +0000
commit1b465e5c912f6e5a344f2a7ddccef376756e83c3 (patch)
tree63c9188bf609f4c3920301599cd73a383d6fa5c5 /src/com
parentcec9c6bdcffde03fbfd69b3a1872e4399fc28213 (diff)
downloadvaadin-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.java28
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();
}