Class RevByColumnsDiscreteGridPainter<BGS, BCS, SF>
Render the grid with discrete column rects.
Remarks
Paints all the cells of a grid, one column at a time.
In this grid renderer, a background rect is not drawn using the grid background color.
Rather, all columns paint their own background rects, with color defaulting to grid background color.
The idea of painting each column rect is to "clip" text that might have overflowed from the previous column by painting over it with the background from this column. Only the last column will show overflowing text, and only if the canvas width exceeds the grid width. If this is the case, you can turn on clipping for the last column only by setting columnClip to true for the last column.
NOTE: As a convenience feature, setting columnClip to null will clip only the last column, so simply setting it on the grid (rather than the last column) will have the same effect. This is much more convenient because you don't have to worry about the last column being redefined (moved, hidden, etc).
try...catch surrounds each cell paint in case a cell renderer throws an error.
The error message is error-logged to console AND displayed in cell.
Render the grid with discrete column rects.
Remarks
Paints all the cells of a grid, one column at a time.
In this grid renderer, a background rect is not drawn using the grid background color.
Rather, all columns paint their own background rects, with color defaulting to grid background color.
The idea of painting each column rect is to "clip" text that might have overflowed from the previous column by painting over it with the background from this column. Only the last column will show overflowing text, and only if the canvas width exceeds the grid width. If this is the case, you can turn on clipping for the last column only by setting
columnClip
totrue
for the last column.NOTE: As a convenience feature, setting
columnClip
tonull
will clip only the last column, so simply setting it on the grid (rather than the last column) will have the same effect. This is much more convenient because you don't have to worry about the last column being redefined (moved, hidden, etc).try...catch
surrounds each cell paint in case a cell renderer throws an error. The error message is error-logged to console AND displayed in cell.