getFishboneWidth method

  1. @override
double getFishboneWidth()
override

Implementation

@override
double getFishboneWidth() {
  if (getRightItems().isEmpty && getLeftItems().isEmpty) {
    return _fishboneWidth == 0
        ? (getSize()?.width ?? 200) +
              (getParentNode()?.getHSpace() ?? 0) +
              (getSize()?.height ?? 200)
        : _fishboneWidth;
  } else {
    double w = _fishboneWidth;
    for (IMindMapNode node in getRightItems()) {
      double w1 = node.getFishboneWidth();
      if (w1 > w) {
        w = w1;
      }
    }
    for (IMindMapNode node in getLeftItems()) {
      double w1 = node.getFishboneWidth();
      if (w1 > w) {
        w = w1;
      }
    }
    if (getParentNode()?.getNodeType() == NodeType.root) {
      if (w < (getSize()?.width ?? 0) / 2) {
        w = (getSize()?.width ?? 0) / 2;
      }
    }
    return w;
  }
}