drawGrid method

  1. @override
void drawGrid([
  1. bool drawY = false
])
override

Implementation

@override
void drawGrid([bool drawY = false]) {
  _gridElem.innerHTML = ''.toJS;

  _svgElem.style.minWidth = '$gridMaxPxX';

  var labelCountY = getLabelCountY();
  var rangeY = gridMaxPxY - gridMinPxY;
  var spaceY = rangeY/(labelCountY-1);

  List<String> lines = [];
  for (var i = 0; i < labelCountY; i++) {
    lines.add('<line x1="$gridMinPxX" y1="${gridMinPxY + spaceY*i}" x2="$gridMaxPxX" y2="${gridMinPxY + spaceY*i}" stroke-width="$gridLineWidth" stroke="$gridLineStrokeStyle" />');
  }

  if (drawY) {
    var labelCountX = _dataPoints.length;
    var labelMinPxX = gridMinPxX + max(barWidth, maxLabelWidthX)/2;
    var labelMaxPxX = gridMaxPxX - max(barWidth, maxLabelWidthX)/2;
    var rangeX  = labelMaxPxX - labelMinPxX;
    var spaceX = rangeX/(labelCountX-1);
    for (var i = 0; i < labelCountX; i++) {
      lines.add('<line x1="${labelMinPxX + spaceX*i}" y1="$gridMinPxY" x2="${labelMinPxX + spaceX*i}" y2="$gridMaxPxY" stroke-width="$gridLineWidth" stroke="$gridLineStrokeStyle" />');
    }
  }

  _gridElem.insertAdjacentHTML('beforeend', lines.join().toJS);
}