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) {
  assert(coord is RectCoordConv);

  final rst = <MarkElement>[];

  for (var item in group) {
    if (item.label != null) {
      final labelAnchor = coord.convert(item.position[0] +
          (item.position[1] - item.position[0]) *
              (item.shape as FunnelShape).labelPosition);
      rst.add(LabelElement(
        text: item.label!.text!,
        anchor: labelAnchor,
        defaultAlign: (item.shape as FunnelShape).labelPosition.equalTo(1)
            ? (coord.transposed ? Alignment.centerRight : Alignment.topCenter)
            : (item.shape as FunnelShape).labelPosition.equalTo(0)
                ? (coord.transposed
                    ? Alignment.centerLeft
                    : Alignment.bottomCenter)
                : Alignment.center,
        style: item.label!.style,
        tag: item.tag,
      ));
    }
  }

  return rst;
}