generateVisibleLabels method

  1. @override
void generateVisibleLabels ()
override

Generates the visible axis labels.

Implementation

@override
void generateVisibleLabels() {
  num tempInterval = _visibleRange.minimum;
  String text;
  final String minimum = tempInterval.toString();
  final num maximumVisibleRange = _visibleRange.maximum;
  num interval = _visibleRange.interval;
  interval = interval.toString().split('.').length >= 2
      ? interval.toString().split('.')[1].length == 1 &&
              interval.toString().split('.')[1] == '0'
          ? interval.floor()
          : interval
      : interval;
  _visibleLabels = <AxisLabel>[];
  for (; tempInterval <= maximumVisibleRange; tempInterval += interval) {
    num minimumVisibleRange = tempInterval;
    if (minimumVisibleRange <= maximumVisibleRange &&
        minimumVisibleRange >= _visibleRange.minimum) {
      final int fractionDigits = (minimum.split('.').length >= 2)
          ? minimum.split('.')[1].toString().length
          : (minimumVisibleRange.toString().split('.').length >= 2)
              ? minimumVisibleRange.toString().split('.')[1].toString().length
              : 0;
      minimumVisibleRange =
          num.tryParse(minimumVisibleRange.toStringAsFixed(fractionDigits));
      if (minimumVisibleRange is double) {
        final String str = minimumVisibleRange.toString();
        final List<dynamic> list = str.split('.');
        minimumVisibleRange =
            double.parse(minimumVisibleRange.toStringAsFixed(3));
        if (list[1] == '0' || list[1] == '00' || list[1] == '000')
          minimumVisibleRange = minimumVisibleRange.round();
      }
      text = minimumVisibleRange.toString();
      if (numberFormat != null) {
        text = numberFormat.format(minimumVisibleRange);
      }
      if (labelFormat != null) {
        text = labelFormat.replaceAll(RegExp('{value}'), text);
      }
      final Size labelSize = _measureText(text, labelStyle, labelRotation);
      _visibleLabels
          .add(AxisLabel(labelStyle, labelSize, text, minimumVisibleRange));
    }
  }

  /// Get the maximum label of width and height in axis.
  _calculateMaximumLabelSize(this, _chart);
}