@Override
  protected void doAction() {
    final String[] errorString = new String[]{null};
    final String extractedSuperName = getExtractedSuperName();
    final String packageName = getTargetPackageName();
    RecentsManager.getInstance(myProject).registerRecentEntry(getDestinationPackageRecentKey(), packageName);

    if (extractedSuperName.isEmpty()) {
      // TODO just disable OK button
      errorString[0] = getExtractedSuperNameNotSpecifiedMessage();
      myExtractedSuperNameField.requestFocusInWindow();
    }
    else {
      String nameError = validateName(extractedSuperName);
      if (nameError == null) {
        nameError = validateQualifiedName(packageName, extractedSuperName);
      }
      if (nameError != null) {
        errorString[0] = nameError;
        myExtractedSuperNameField.requestFocusInWindow();
      }
      else {
        CommandProcessor.getInstance().executeCommand(myProject, () -> {
          try {
            preparePackage();
          }
          catch (IncorrectOperationException | OperationFailedException e) {
            errorString[0] = e.getMessage();
            myPackageNameField.requestFocusInWindow();
          }
        }, RefactoringBundle.message("create.directory"), null);
      }
    }
    if (errorString[0] != null) {
      if (errorString[0].length() > 0) {
        CommonRefactoringUtil.showErrorMessage(myRefactoringName, errorString[0], getHelpId(), myProject);
      }
      return;
    }

    if (!checkConflicts()) return;

    executeRefactoring();
    setDocCommentPolicySetting(getDocCommentPolicy());
    closeOKAction();
  }
@Override
  protected void doAction()