splitNode method

void splitNode(
  1. String targetId,
  2. Axis direction
)

Implementation

void splitNode(String targetId, Axis direction) {
  final timeStamp = DateTime.now().millisecondsSinceEpoch;
  final newNode1 = LeafNode(id: '${targetId}_1_$timeStamp');
  final newNode2 = LeafNode(id: '${targetId}_2_$timeStamp');

  final newSplitNode = SplitNode(
    id: '${targetId}_split_$timeStamp',
    direction: direction,
    child1: newNode1,
    child2: newNode2,
    ratio: 0.5,
  );

  if (rootNode.id == targetId) {
    rootNode = newSplitNode;
  } else {
    _replaceNode(rootNode, targetId, newSplitNode);
  }

  _equalizeRatios(rootNode, direction);

  notifyListeners();
}