docs: public void insertNodeBefore(Node insert, Node before, int direction) {
          if (isSplitterDirection(direction)) {
              double split = getSplit(before) / 2;
              setSplit(before, split);
              addChild(insert, children.indexOf(before), split);
          }
          else {
              pushDown(before, insert, before);
          }
          notifyStateChange();
      }