drawGrid method
Implementation
@visibleForTesting
void drawGrid(CanvasWrapper canvasWrapper, PaintHolder<D> holder) {
final data = holder.data;
if (!data.gridData.show) {
return;
}
final viewSize = canvasWrapper.size;
// Show Vertical Grid
if (data.gridData.drawVerticalLine) {
final verticalInterval = data.gridData.verticalInterval ??
Utils().getEfficientInterval(
viewSize.width,
data.horizontalDiff,
);
final axisValues = AxisChartHelper().iterateThroughAxis(
min: data.minX,
minIncluded: false,
max: data.maxX,
maxIncluded: false,
baseLine: data.baselineX,
interval: verticalInterval,
);
for (final axisValue in axisValues) {
if (!data.gridData.checkToShowVerticalLine(axisValue)) {
continue;
}
final flLineStyle = data.gridData.getDrawingVerticalLine(axisValue);
_gridPaint
..color = flLineStyle.color
..strokeWidth = flLineStyle.strokeWidth
..transparentIfWidthIsZero();
final bothX = getPixelX(axisValue, viewSize, holder);
final x1 = bothX;
const y1 = 0.0;
final x2 = bothX;
final y2 = viewSize.height;
canvasWrapper.drawDashedLine(
Offset(x1, y1),
Offset(x2, y2),
_gridPaint,
flLineStyle.dashArray,
);
}
}
// Show Horizontal Grid
if (data.gridData.drawHorizontalLine) {
final horizontalInterval = data.gridData.horizontalInterval ??
Utils().getEfficientInterval(viewSize.height, data.verticalDiff);
final axisValues = AxisChartHelper().iterateThroughAxis(
min: data.minY,
minIncluded: false,
max: data.maxY,
maxIncluded: false,
baseLine: data.baselineY,
interval: horizontalInterval,
);
for (final axisValue in axisValues) {
if (!data.gridData.checkToShowHorizontalLine(axisValue)) {
continue;
}
final flLine = data.gridData.getDrawingHorizontalLine(axisValue);
_gridPaint
..color = flLine.color
..strokeWidth = flLine.strokeWidth
..transparentIfWidthIsZero();
final bothY = getPixelY(axisValue, viewSize, holder);
const x1 = 0.0;
final y1 = bothY;
final x2 = viewSize.width;
final y2 = bothY;
canvasWrapper.drawDashedLine(
Offset(x1, y1),
Offset(x2, y2),
_gridPaint,
flLine.dashArray,
);
}
}
}