introduce constant: do not suggest class chooser popup when "move to another class" was selected (IDEA-86379)

This commit is contained in:
Anna Kozlova
2012-05-21 20:49:16 +04:00
parent 1f011db669
commit a98e4c0963
2 changed files with 10 additions and 2 deletions
@@ -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 {
@@ -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;