protected void finishSection(final TableSectionRenderBox section)
{
// OK; a complete section is a coolness factor. Lets compute something.
// Grab the model of all available rows ..
final TableRowModel rowModel = section.getRowModel();
rowModel.validateActualSizes();
long position = currentTable.getPosition();
// Second step: Apply the row heights to all cells.
// + Align all cells.
final TableRow[] rows = rowModel.getRows();
RenderNode rowNode = section.getFirstChild();
boolean firstRow = true;
while (rowNode != null)
{
if (rowNode instanceof TableRowRenderBox == false)
{
rowNode = rowNode.getNext();
continue;
}
if (rowNode.isDirty() == false)
{
throw new IllegalStateException("The row is not dirty?");
}
final TableRowRenderBox rowBox = (TableRowRenderBox) rowNode;
final int rowNumber = rowBox.getRowInfoStructure().getRowNumber();
final TableRow row = rows[rowNumber];
final long validatedRowHeight = row.getValidateSize();
if (firstRow)
{
firstRow = false;
}
else
{
position += rowModel.getRowSpacing();
}
final long oldPosition = rowBox.getY();
final long shift = position - oldPosition;
if (shift < 0)