// FIXME REVIEW
aligns = tHead.getColumnAlignments();
final Iterator<?> it = rowData.getChildIterator();
if (firstIndex == lastRendered + 1) {
while (it.hasNext()) {
final VScrollTableRow row = prepareRow((UIDL) it.next());
addRow(row);
setLastRendered(lastRendered + 1);
}
fixSpacers();
} else if (firstIndex + rows == firstRendered) {
final VScrollTableRow[] rowArray = new VScrollTableRow[rows];
int i = rows;
while (it.hasNext()) {
i--;
rowArray[i] = prepareRow((UIDL) it.next());
}
for (i = 0; i < rows; i++) {
addRowBeforeFirstRendered(rowArray[i]);
firstRendered--;
}
} else {
// completely new set of rows
// there can't be sanity checks for last rendered within this
// while loop regardless of what has been set previously, so
// change it temporarily to true and then return the original
// value
boolean temp = postponeSanityCheckForLastRendered;
postponeSanityCheckForLastRendered = true;
while (lastRendered + 1 > firstRendered) {
unlinkRow(false);
}
postponeSanityCheckForLastRendered = temp;
VScrollTableRow row = prepareRow((UIDL) it.next());
firstRendered = firstIndex;
setLastRendered(firstIndex - 1);
addRow(row);
setLastRendered(lastRendered + 1);
setContainerHeight();