@Override
    public @NotNull Action postVisitEDT(@NotNull TreePath path, @NotNull TreeVisitor.Action action) {
      if (action == TreeVisitor.Action.CONTINUE || action == TreeVisitor.Action.INTERRUPT) {
        if (checkCancelled(path)) {
          return TreeVisitor.Action.SKIP_SIBLINGS;
        }
        var model = tree.getModel();
        if (action == TreeVisitor.Action.CONTINUE && model != null && !model.isLeaf(path.getLastPathComponent()) && !tree.isExpanded(path)) {
          if (!isUnderExpandRoot(path)) {
            expandRoots.add(path);
          }
          doExpand(path);
        }
      }
      return action;
    }
@Override
    public @NotNull Action postVisitEDT(@NotNull TreePath path, @NotNull TreeVisitor.Action action)