private int pageBufferFirstIndex;
+ private boolean containerChangeToBeRendered = false;
+
/* Table constructors *************************************************** */
/**
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;
// pageBuffer
reqFirstRowToPaint = -1;
reqRowsToPaint = -1;
+ containerChangeToBeRendered = false;
target.addVariable(this, "reqrows", reqRowsToPaint);
target.addVariable(this, "reqfirstrow", reqFirstRowToPaint);
} else {
resetPageBuffer();
refreshRenderedCells();
+ containerChangeToBeRendered = true;
}
requestRepaint();
}