public @NotNull Action progress(@NotNull @Nls String message, boolean addProgressIconBelow) {
    myLock.lock();
    try {
      cancelCurrentAction();

      Action action = new Action();
      myCurrentAction = action;
      invokeLater(() -> {
        clearUI();

        if (addProgressIconBelow) {
          AsyncProcessIcon asyncProcessIcon = new AsyncProcessIcon(message);
          add(asyncProcessIcon, BorderLayout.CENTER);
          setVisible(true);
          asyncProcessIcon.resume();
        }

        refreshUI();
      });
      return action;
    }
    finally {
      myLock.unlock();
    }
  }
public @NotNull Action progress(@NotNull @Nls String message, boolean addProgressIconBelow)