From a6244c84723a4ee1ecf7724fbd623483d9b592c8 Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 1 Mar 2012 19:10:45 +0100 Subject: [PATCH] restore remember last place for introduce field (IDEA-82084) --- .../introduceField/IntroduceFieldPopupPanel.java | 9 ++++++--- .../inplaceIntroduceField/replaceAll_after.java | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/IntroduceFieldPopupPanel.java b/java/java-impl/src/com/intellij/refactoring/introduceField/IntroduceFieldPopupPanel.java index 7087590d74f6..d2491ebd2127 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/IntroduceFieldPopupPanel.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/IntroduceFieldPopupPanel.java @@ -67,14 +67,17 @@ public class IntroduceFieldPopupPanel extends IntroduceFieldCentralPanel { final PsiMethod setUpMethod = TestFrameworks.getInstance().findSetUpMethod(myParentClass); final boolean setupEnabled = myInitialisersPlaceModel.getIndexOf(BaseExpressionToFieldHandler.InitializationPlace.IN_SETUP_METHOD) > -1; - if (setupEnabled && (myInitializerExpression != null && PsiTreeUtil.isAncestor(setUpMethod, myInitializerExpression, false) || + if (ourLastInitializerPlace == BaseExpressionToFieldHandler.InitializationPlace.IN_SETUP_METHOD && + setupEnabled && (myInitializerExpression != null && PsiTreeUtil.isAncestor(setUpMethod, myInitializerExpression, false) || TestFrameworks.getInstance().isTestClass(myParentClass))) { myInitialisersPlaceModel.setSelectedItem(BaseExpressionToFieldHandler.InitializationPlace.IN_SETUP_METHOD); } - else if (myInitialisersPlaceModel.getIndexOf(BaseExpressionToFieldHandler.InitializationPlace.IN_CONSTRUCTOR) > -1 && myParentClass.getConstructors().length > 0) { + else if (ourLastInitializerPlace == BaseExpressionToFieldHandler.InitializationPlace.IN_CONSTRUCTOR && + myInitialisersPlaceModel.getIndexOf(BaseExpressionToFieldHandler.InitializationPlace.IN_CONSTRUCTOR) > -1 && myParentClass.getConstructors().length > 0) { myInitialisersPlaceModel.setSelectedItem(BaseExpressionToFieldHandler.InitializationPlace.IN_CONSTRUCTOR); } - else if (myInitialisersPlaceModel.getIndexOf(BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION) > -1) { + else if (ourLastInitializerPlace == BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION && + myInitialisersPlaceModel.getIndexOf(BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION) > -1) { myInitialisersPlaceModel.setSelectedItem(BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION); } else { diff --git a/java/java-tests/testData/refactoring/inplaceIntroduceField/replaceAll_after.java b/java/java-tests/testData/refactoring/inplaceIntroduceField/replaceAll_after.java index f25df71b3f08..a818fa631b43 100644 --- a/java/java-tests/testData/refactoring/inplaceIntroduceField/replaceAll_after.java +++ b/java/java-tests/testData/refactoring/inplaceIntroduceField/replaceAll_after.java @@ -15,9 +15,10 @@ */ class Test { - private final String x = ""; + private String x; void simpleMethod() { + x = ""; System.out.println(x); System.out.println(x); }