@Override
  @RequiresEdt
  public int showMoreInfoMessageDialog(Project project,
                                       String message,
                                       String title,
                                       @NlsContexts.DetailedDescription String moreInfo,
                                       String[] options,
                                       int defaultOptionIndex,
                                       int focusedOptionIndex,
                                       Icon icon) {
    if (isApplicationInUnitTestOrHeadless()) {
      return TestDialogManager.getTestImplementation().show(message);
    }

    if (moreInfo == null) {
      AlertMessagesManager alertMessagesManager = AlertMessagesManager.getInstanceIfPossible();
      if (alertMessagesManager != null) {
        return alertMessagesManager.showMessageDialog(project, null, message, title, options, defaultOptionIndex,
                                                      focusedOptionIndex, icon, null, null);
      }
    }

    MessageDialog dialog =
      new MoreInfoMessageDialog(project, message, title, moreInfo, options, defaultOptionIndex, focusedOptionIndex, icon);
    dialog.show();
    return dialog.getExitCode();
  }
@Override
  @RequiresEdt
  public int showMoreInfoMessageDialog(Project project,
                                       String message,
                                       String title,
                                       @NlsContexts.DetailedDescription String moreInfo,
                                       String[] options,
                                       int defaultOptionIndex,
                                       int focusedOptionIndex,
                                       Icon icon)