From a8a4d2988f7592096797c0825be42045840f741d Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 8 Apr 2011 11:48:21 +0200 Subject: [PATCH] inline introduce: rebind types (IDEA-67726) --- .../InplaceIntroduceConstantPopup.java | 3 ++- .../InplaceIntroduceFieldPopup.java | 24 ++++++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java index 5f34e07a9ab3..a2ab7301809a 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java @@ -62,7 +62,7 @@ public class InplaceIntroduceConstantPopup { private PsiExpression myExpr; private final PsiLocalVariable myLocalVariable; private final PsiExpression[] myOccurrences; - private final TypeSelectorManagerImpl myTypeSelectorManager; + private TypeSelectorManagerImpl myTypeSelectorManager; private PsiElement myAnchorElement; private int myAnchorIdx = -1; private PsiElement myAnchorElementIfAll; @@ -370,6 +370,7 @@ public class InplaceIntroduceConstantPopup { final TemplateState templateState = TemplateManagerImpl.getTemplateState(myEditor); if (templateState != null) { templateState.gotoEnd(true); + myTypeSelectorManager = new TypeSelectorManagerImpl(myProject, myFieldTypePointer.getType(), null, myExpr, myOccurrences); startIntroduceTemplate(isReplaceAllOccurrences()); } } diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java index 6a8f6e64a3eb..ba9e22049290 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java @@ -59,7 +59,7 @@ public class InplaceIntroduceFieldPopup { private final Editor myEditor; private Project myProject; - private final TypeSelectorManagerImpl myTypeSelectorManager; + private TypeSelectorManagerImpl myTypeSelectorManager; private final PsiElement myAnchorElement; private int myAnchorIdx = -1; private final PsiElement myAnchorElementIfAll; @@ -136,16 +136,7 @@ public class InplaceIntroduceFieldPopup { myWholePanel.add(myIntroduceFieldPanel.createCenterPanel(), gc); myIntroduceFieldPanel.initializeControls(initializerExpression, ourLastInitializerPlace); - myIntroduceFieldPanel.addOccurrenceListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - final TemplateState templateState = TemplateManagerImpl.getTemplateState(myEditor); - if (templateState != null) { - templateState.gotoEnd(true); - startTemplate(myIntroduceFieldPanel.isReplaceAllOccurrences()); - } - } - }); + } @@ -298,6 +289,17 @@ public class InplaceIntroduceFieldPopup { finalListener.perform(myIntroduceFieldPanel.isDeclareFinal()); } }); + myIntroduceFieldPanel.addOccurrenceListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + final TemplateState templateState = TemplateManagerImpl.getTemplateState(myEditor); + if (templateState != null) { + templateState.gotoEnd(true); + myTypeSelectorManager = new TypeSelectorManagerImpl(myProject, myFieldTypePointer.getType(), null, myInitializerExpression, myOccurrences); + startTemplate(myIntroduceFieldPanel.isReplaceAllOccurrences()); + } + } + }); } return myWholePanel;