Hi,
There are things unclear to me in the addAreasAndFlushRow method of the
RowPainter class. I hope someone can shed some light:
- why is a Map used to store y-offsets of rows? That seems to indicate
that rows are not added in a sequential order, or that there could be
hole between them, which sounds unlikely to me.
- there is one condition that I don't understand on l.204: in case the
primary grid unit at the given column isn't null, then the
corresponding areas are added only if:
- forcedFlush == true, or
- the end of the cell is reached on the current row AND (the current
grid unit is null or is the last in the row-spanning direction).
What's the purpose of that second member of the and?
- also, inside the if branch, in case the primary grid unit was null,
then the primary grid units from the current grid unit (i.e., on the
current row) is retrieved if:
- it does not correspond to an empty cell;
- the cell doesn't span in the column direction
- it is the last grid unit
Why such conditions, and can the primary grid unit still be null after
that (as implied by the if l.223)?
There seems to be some careful selection of the cells to be painted,
which is still a bit cryptic to me...
Thanks,
Vincent