void () { final String targetClassName = getTargetClassName(); PsiClass newClass = myParentClass; if (!targetClassName.isEmpty() && !Comparing.strEqual(targetClassName, myParentClass.getQualifiedName())) { newClass = JavaPsiFacade.getInstance(myProject).findClass(targetClassName, GlobalSearchScope.projectScope(myProject)); if (newClass == null) { if (Messages.showOkCancelDialog(myProject, JavaRefactoringBundle.message("class.does.not.exist.in.the.project"), IntroduceConstantHandler.getRefactoringNameText(), Messages.getErrorIcon()) != Messages.OK) { return; } myDestinationClass = new BaseExpressionToFieldHandler.TargetDestination(targetClassName, myParentClass); } else { myDestinationClass = new BaseExpressionToFieldHandler.TargetDestination(newClass); } } String fieldName = getEnteredName(); String errorString = null; if (fieldName != null && fieldName.isEmpty()) { errorString = RefactoringBundle.message("no.field.name.specified"); } else if (!PsiNameHelper.getInstance(myProject).isIdentifier(fieldName)) { errorString = RefactoringMessageUtil.getIncorrectIdentifierMessage(fieldName); } else if (newClass != null && !myParentClass.getLanguage().equals(newClass.getLanguage())) { errorString = RefactoringBundle.message("move.to.different.language", UsageViewUtil.getType(myParentClass), myParentClass.getQualifiedName(), newClass.getQualifiedName()); } if (errorString != null) { CommonRefactoringUtil.showErrorMessage( IntroduceFieldHandler.getRefactoringNameText(), errorString, HelpID.INTRODUCE_FIELD, myProject); return; } if (newClass != null) { PsiField oldField = newClass.findFieldByName(fieldName, true); if (oldField != null) { int answer = Messages.showYesNoDialog( myProject, RefactoringBundle.message("field.exists", fieldName, oldField.getContainingClass().getQualifiedName()), IntroduceFieldHandler.getRefactoringNameText(), Messages.getWarningIcon() ); if (answer != Messages.YES) { return; } } } JavaRefactoringSettings javaRefactoringSettings = JavaRefactoringSettings.getInstance(); javaRefactoringSettings.INTRODUCE_CONSTANT_VISIBILITY = getFieldVisibility(); if (myOccurrencesCount > 1) { javaRefactoringSettings.INTRODUCE_CONSTANT_REPLACE_ALL = isReplaceAllOccurrences(); } RecentsManager.getInstance(myProject).registerRecentEntry(RECENTS_KEY, targetClassName); myNameSuggestionsManager.nameSelected(); super.doOKAction(); }