drawDate method

  1. @override
void drawDate(
  1. Canvas canvas,
  2. Size size
)
override

Implementation

@override
void drawDate(Canvas canvas, Size size) {
  if (data == null) return;

  double columnSpace = size.width / mGridColumns;
  double startX = getX(mStartIndex) - mPointWidth / 2;
  double stopX = getX(mStopIndex) + mPointWidth / 2;
  double x = 0.0;
  double y = 0.0;
  for (var i = 0; i <= mGridColumns; ++i) {
    double translateX = xToTranslateX(columnSpace * i);

    if (translateX >= startX && translateX <= stopX) {
      int index = indexOfTranslateX(translateX);

      if (data?[index] == null) continue;
      TextPainter tp = getTextPainter(getDate(data![index].time), null);
      y = size.height - (style.main.padding.bottom - tp.height) / 2 - tp.height;
      x = columnSpace * i - tp.width / 2;
      // Prevent date text out of canvas
      if (x < 0) x = 0;
      if (x > size.width - tp.width) x = size.width - tp.width;
      tp.paint(canvas, Offset(x, y));
    }
  }
}