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 ac814659dcc8..31ffb0844496 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java @@ -549,12 +549,17 @@ public class InplaceIntroduceConstantPopup { myReplaceAllCb.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { - final TemplateState templateState = TemplateManagerImpl.getTemplateState(myEditor); - if (templateState != null) { - templateState.gotoEnd(true); - myTypeSelectorManager = new TypeSelectorManagerImpl(myProject, myDefaultParameterTypePointer.getType(), null, myExpr, myOccurrences); - startIntroduceTemplate(isReplaceAllOccurrences(), myFieldTypePointer.getType()); - } + Runnable restartTemplateRunnable = new Runnable() { + public void run() { + final TemplateState templateState = TemplateManagerImpl.getTemplateState(myEditor); + if (templateState != null) { + templateState.gotoEnd(true); + myTypeSelectorManager = new TypeSelectorManagerImpl(myProject, myDefaultParameterTypePointer.getType(), null, myExpr, myOccurrences); + startIntroduceTemplate(isReplaceAllOccurrences(), myFieldTypePointer.getType()); + } + } + }; + CommandProcessor.getInstance().executeCommand(myProject, restartTemplateRunnable, IntroduceConstantHandler.REFACTORING_NAME, IntroduceConstantHandler.REFACTORING_NAME); } }); 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 acf8d5349d7a..9c99c07722a4 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java @@ -15,11 +15,14 @@ */ package com.intellij.refactoring.introduceField; +import com.intellij.codeInsight.CodeInsightBundle; import com.intellij.codeInsight.intention.impl.TypeExpression; import com.intellij.codeInsight.template.impl.TemplateManagerImpl; import com.intellij.codeInsight.template.impl.TemplateState; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.Result; import com.intellij.openapi.command.CommandProcessor; +import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.RangeMarker; import com.intellij.openapi.editor.ScrollType; @@ -309,12 +312,21 @@ public class InplaceIntroduceFieldPopup { 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, myDefaultParameterTypePointer.getType(), null, myInitializerExpression, myOccurrences); - startTemplate(myIntroduceFieldPanel.isReplaceAllOccurrences(), myFieldTypePointer.getType()); - } + final Runnable restartTemplate = new Runnable() { + @Override + public void run() { + final TemplateState templateState = + TemplateManagerImpl.getTemplateState(myEditor); + if (templateState != null) { + templateState.gotoEnd(true); + myTypeSelectorManager = new TypeSelectorManagerImpl(myProject, myDefaultParameterTypePointer.getType(), null, myInitializerExpression, myOccurrences); + startTemplate(myIntroduceFieldPanel.isReplaceAllOccurrences(), myFieldTypePointer.getType()); + } + } + }; + CommandProcessor.getInstance().executeCommand(myProject, restartTemplate, + IntroduceFieldHandler.REFACTORING_NAME, + IntroduceFieldHandler.REFACTORING_NAME); } }); } diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java index 9761f74e80b1..a5a116df7c12 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java @@ -424,14 +424,19 @@ class InplaceIntroduceParameterPopup extends IntroduceParameterSettingsUI { protected void updateControls(JCheckBox[] removeParamsCb) { super.updateControls(removeParamsCb); if (myParameterIndex < 0) return; - final TemplateState templateState = TemplateManagerImpl.getTemplateState(myEditor); - if (templateState != null) { - PsiDocumentManager.getInstance(myProject).commitDocument(myEditor.getDocument()); - final PsiParameter parameter = getParameter(); - final boolean hasFinalModifier = parameter.hasModifierProperty(PsiModifier.FINAL); - templateState.gotoEnd(true); - startIntroduceTemplate(isReplaceAllOccurences(), hasFinalModifier); - } + Runnable restartTemplateRunnable = new Runnable() { + public void run() { + final TemplateState templateState = TemplateManagerImpl.getTemplateState(myEditor); + if (templateState != null) { + PsiDocumentManager.getInstance(myProject).commitDocument(myEditor.getDocument()); + final PsiParameter parameter = getParameter(); + final boolean hasFinalModifier = parameter.hasModifierProperty(PsiModifier.FINAL); + templateState.gotoEnd(true); + startIntroduceTemplate(isReplaceAllOccurences(), hasFinalModifier); + } + } + }; + CommandProcessor.getInstance().executeCommand(myProject, restartTemplateRunnable, IntroduceParameterHandler.REFACTORING_NAME, IntroduceParameterHandler.REFACTORING_NAME); }