drawGroupLabels method

  1. @override
List<MarkElement<ElementStyle>> drawGroupLabels(
  1. List<Attributes> group,
  2. CoordConv coord,
  3. Offset origin
)
override

Renders label elements of all tuples of a group.

Implementation

@override
List<MarkElement> drawGroupLabels(
    List<Attributes> group, CoordConv coord, Offset origin) {
  final rst = <MarkElement>[];

  for (var item in group) {
    assert(item.shape is PointShape);

    var empty = false;
    for (var point in item.position) {
      if (!point.isFinite) {
        empty = true;
        break;
      }
    }
    if (empty) {
      continue;
    }

    final size = item.size ?? defaultSize;
    if (item.label != null && item.label!.haveText) {
      final point = coord.convert(representPoint(item.position));
      final anchor = Offset(
        point.dx,
        point.dy + (size / 2),
      );
      rst.add(LabelElement(
        text: item.label!.text!,
        anchor: anchor,
        defaultAlign: Alignment.topCenter,
        style: item.label!.style,
        tag: item.tag,
      ));
    }
  }

  return rst;
}