drawBarLine method

  1. @visibleForTesting
void drawBarLine(
  1. CanvasWrapper canvasWrapper,
  2. LineChartBarData barData,
  3. PaintHolder<LineChartData> holder
)

Implementation

@visibleForTesting
void drawBarLine(
  CanvasWrapper canvasWrapper,
  LineChartBarData barData,
  PaintHolder<LineChartData> holder,
) {
  final viewSize = canvasWrapper.size;
  final barList = barData.spots.splitByNullSpots();

  // paint each sublist that was built above
  // bar is passed in separately from barData
  // because barData is the whole line
  // and bar is a piece of that line
  for (final bar in barList) {
    final barPath = generateBarPath(viewSize, barData, bar, holder);

    final belowBarPath =
        generateBelowBarPath(viewSize, barData, barPath, bar, holder);
    final completelyFillBelowBarPath = generateBelowBarPath(
      viewSize,
      barData,
      barPath,
      bar,
      holder,
      fillCompletely: true,
    );
    final aboveBarPath =
        generateAboveBarPath(viewSize, barData, barPath, bar, holder);
    final completelyFillAboveBarPath = generateAboveBarPath(
      viewSize,
      barData,
      barPath,
      bar,
      holder,
      fillCompletely: true,
    );

    drawBelowBar(
      canvasWrapper,
      belowBarPath,
      completelyFillAboveBarPath,
      holder,
      barData,
    );
    drawAboveBar(
      canvasWrapper,
      aboveBarPath,
      completelyFillBelowBarPath,
      holder,
      barData,
    );
    drawBarShadow(canvasWrapper, barPath, barData);
    drawBar(canvasWrapper, barPath, barData, holder);
  }
}