diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/BaseExpressionToFieldHandler.java b/java/java-impl/src/com/intellij/refactoring/introduceField/BaseExpressionToFieldHandler.java index 51974730e346..6b9d7c583910 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/BaseExpressionToFieldHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/BaseExpressionToFieldHandler.java @@ -58,6 +58,7 @@ import com.intellij.psi.util.PsiUtil; import com.intellij.psi.util.PsiUtilBase; import com.intellij.refactoring.IntroduceHandlerBase; import com.intellij.refactoring.RefactoringBundle; +import com.intellij.refactoring.introduce.inplace.AbstractInplaceIntroducer; import com.intellij.refactoring.introduceVariable.IntroduceVariableBase; import com.intellij.refactoring.rename.RenameJavaVariableProcessor; import com.intellij.refactoring.util.CommonRefactoringUtil; @@ -123,7 +124,10 @@ public abstract class BaseExpressionToFieldHandler extends IntroduceHandlerBase if (psiField != null && psiField.getParent() == aClass) break; aClass = PsiTreeUtil.getParentOfType(aClass, PsiClass.class, true); } - if (classes.size() == 1 || editor == null || ApplicationManager.getApplication().isUnitTestMode()) { + final AbstractInplaceIntroducer activeIntroducer = AbstractInplaceIntroducer.getActiveIntroducer(editor); + final boolean shouldSuggestDialog = activeIntroducer instanceof InplaceIntroduceConstantPopup && + activeIntroducer.startsOnTheSameElement(selectedExpr, null); + if (classes.size() == 1 || editor == null || ApplicationManager.getApplication().isUnitTestMode() || shouldSuggestDialog) { return !convertExpressionToField(selectedExpr, editor, file, project, tempType); } else { diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/LocalToFieldHandler.java b/java/java-impl/src/com/intellij/refactoring/introduceField/LocalToFieldHandler.java index a991d6e519aa..1f9661d1c5e0 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/LocalToFieldHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/LocalToFieldHandler.java @@ -32,6 +32,7 @@ import com.intellij.psi.search.searches.ReferencesSearch; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.refactoring.HelpID; import com.intellij.refactoring.RefactoringBundle; +import com.intellij.refactoring.introduce.inplace.AbstractInplaceIntroducer; import com.intellij.refactoring.util.CommonRefactoringUtil; import com.intellij.refactoring.util.EnumConstantsUtil; import com.intellij.refactoring.util.RefactoringUtil; @@ -80,7 +81,10 @@ public abstract class LocalToFieldHandler { } if (classes.isEmpty()) return false; - if (classes.size() == 1 || ApplicationManager.getApplication().isUnitTestMode()) { + final AbstractInplaceIntroducer activeIntroducer = AbstractInplaceIntroducer.getActiveIntroducer(editor); + final boolean shouldSuggestDialog = activeIntroducer instanceof InplaceIntroduceConstantPopup && + activeIntroducer.startsOnTheSameElement(null, local); + if (classes.size() == 1 || ApplicationManager.getApplication().isUnitTestMode() || shouldSuggestDialog) { if (convertLocalToField(local, classes.get(getChosenClassIndex(classes)), editor, tempIsStatic)) return false; } else { final boolean isStatic = tempIsStatic;