calculateLabelPosition method

  1. @override
ArcLabelPosition calculateLabelPosition(
  1. TextElement labelElement,
  2. TextStyle labelStyle,
  3. int insideArcWidth,
  4. int outsideArcWidth,
  5. ArcRendererElement arcRendererelement,
  6. ArcLabelPosition labelPosition,
)
override

Implementation

@override
ArcLabelPosition calculateLabelPosition(
  TextElement labelElement,
  TextStyle labelStyle,
  int insideArcWidth,
  int outsideArcWidth,
  ArcRendererElement arcRendererelement,
  ArcLabelPosition labelPosition,
) {
  assert(arcRendererelement is SunburstArcRendererElement);

  if ((arcRendererelement as SunburstArcRendererElement).isOuterMostRing ==
      true) {
    return super.calculateLabelPosition(
      labelElement,
      labelStyle,
      insideArcWidth,
      outsideArcWidth,
      arcRendererelement,
      outerRingArcLabelPosition,
    );
  } else if (arcRendererelement.isLeaf == true) {
    return super.calculateLabelPosition(
      labelElement,
      labelStyle,
      insideArcWidth,
      outsideArcWidth,
      arcRendererelement,
      innerRingLeafArcLabelPosition,
    );
  } else {
    /// TODO: Improve label handling for sunburst chart. When a
    /// more sophisticated collision detection is in place, we can draw the
    /// label for inner arc outside when it doesn't collide with outer arcs.

    // Force label for arc on the inner ring inside.
    return ArcLabelPosition.inside;
  }
}