private void select(Object object) {
    ReadAction.nonBlocking(() -> {
        final PsiElement element = myViewExtension.getElementToSelect(object);
        final VirtualFile file = myViewExtension.getVirtualFile(object);
        myModel.accept(new TreeVisitor() {
          @Override
          public @NotNull Action visit(@NotNull TreePath path) {
            var node = getLast(path);
            if (Comparing.equal(node.getValue(), element)) return Action.INTERRUPT;
            if (node instanceof CoverageListNode coverageNode && coverageNode.contains(file)) {
              return Action.CONTINUE;
            }
            return Action.SKIP_CHILDREN;
          }
        }).onSuccess((path -> {
          if (path != null) {
            TreeUtil.promiseSelect(myTable.getTree(), path);
          }
        }));
      })
      .submit(AppExecutorUtil.getAppExecutorService());
  }
private void select(Object object)