drawLabels method
void
drawLabels(
)
override
Implementation
@override
void drawLabels() {
_labelElem.innerHTML = ''.toJS;
var labelCountX = keys.length;
var labelCountY = getLabelCountY();
var labelMinPxX = gridMinPxX + max(barWidth, maxLabelWidthX)/2;
var labelMaxPxX = gridMaxPxX - max(barWidth, maxLabelWidthX)/2;
var rangeX = labelMaxPxX - labelMinPxX;
var rangeY = gridMaxPxY - gridMinPxY;
var minY = getLabelMinY();
var maxY = getLabelMaxY();
var spaceX = rangeX/(labelCountX-1);
var spaceY = rangeY/(labelCountY-1);
var intervalY = (maxY - minY)/(labelCountY-1);
List<String> texts = [];
for (var i = 0; i < labelCountY; i++) {
texts.add('<text x="${gridMinPxX - textMargin}" y="${gridMinPxY + spaceY*i}" style="font: $labelFontStyle;fill: $labelFillStyle;text-anchor: end;dominant-baseline: middle;">${labelFormatY(maxY - intervalY*i)}</text>');
}
if (labelCountX >= 2) {
var i = 0;
for (var x in keys) {
texts.add('<text x="${labelMinPxX + spaceX*i}" y="${gridMaxPxY + textMargin}" style="font: $labelFontStyle;fill: $labelFillStyle;text-anchor: middle;dominant-baseline: text-top;">$x</text>');
i++;
}
} else {
for (var x in keys) {
texts.add('<text x="${(labelMaxPxX - labelMinPxX)/2}" y="${gridMaxPxY + textMargin}" style="font: $labelFontStyle;fill: $labelFillStyle;text-anchor: middle;dominant-baseline: hanging;">$x</text>');
}
}
_labelElem.innerHTML = texts.join().toJS;
}