@Override
  public void executeProcessUnderProgress(@NotNull Runnable process, ProgressIndicator progress) throws ProcessCanceledException {
    CheckCanceledHook hook = progress instanceof PingProgress && EDT.isCurrentThreadEdt() ?p -> {
      ((PingProgress)progress).interact();
      return true;
    }
                             : null;
    if (hook != null) {
      addCheckCanceledHook(hook);
    }

    try {
      super.executeProcessUnderProgress(process, progress);
    }
    finally {
      if (hook != null) {
        removeCheckCanceledHook(hook);
      }
    }
  }
@Override
  public void executeProcessUnderProgress(@NotNull Runnable process, ProgressIndicator progress)