Browse Source

#1647

svn changeset:4486/svn branch:trunk
tags/6.7.0.beta1
Matti Tahvonen 16 years ago
parent
commit
1b465e5c91
1 changed files with 18 additions and 10 deletions
  1. 18
    10
      src/com/itmill/toolkit/ui/Table.java

+ 18
- 10
src/com/itmill/toolkit/ui/Table.java View File

@@ -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();
}

Loading…
Cancel
Save