@Override
    protected boolean checkCancelled(@NotNull TreePath path) {
      if (tree.isVisible(path)) {
        return false;
      }
      else {
        if (!promise.isCancelled()) {
          if (LOG.isTraceEnabled()) LOG.debug("tree expand canceled");
          promise.cancel();
        }
        return true;
      }
    }
@Override
    protected boolean checkCancelled(@NotNull TreePath path)