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 87acc4405d5c..8ef7ef8ba6c2 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java @@ -209,6 +209,10 @@ public class InplaceIntroduceFieldPopup extends AbstractJavaInplaceIntroducer { } } + public BaseExpressionToFieldHandler.InitializationPlace getInitializerPlace() { + return myIntroduceFieldPanel.getInitializerPlace(); + } + protected void performIntroduce() { ourLastInitializerPlace = myIntroduceFieldPanel.getInitializerPlace(); final BaseExpressionToFieldHandler.Settings settings = diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/IntroduceFieldDialog.java b/java/java-impl/src/com/intellij/refactoring/introduceField/IntroduceFieldDialog.java index 13b6ac8913bc..688637c78db7 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/IntroduceFieldDialog.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/IntroduceFieldDialog.java @@ -38,7 +38,7 @@ import java.awt.*; class IntroduceFieldDialog extends DialogWrapper { - static BaseExpressionToFieldHandler.InitializationPlace ourLastInitializerPlace; + public static BaseExpressionToFieldHandler.InitializationPlace ourLastInitializerPlace; private final Project myProject; private final PsiClass myParentClass; diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/IntroduceFieldHandler.java b/java/java-impl/src/com/intellij/refactoring/introduceField/IntroduceFieldHandler.java index fef87af8c0ab..8c796994483f 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/IntroduceFieldHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/IntroduceFieldHandler.java @@ -124,6 +124,7 @@ public class IntroduceFieldHandler extends BaseExpressionToFieldHandler { occurences = (PsiExpression[])activeIntroducer.getOccurrences(); enteredName = activeIntroducer.getInputName(); replaceAll = activeIntroducer.isReplaceAllOccurrences(); + IntroduceFieldDialog.ourLastInitializerPlace = ((InplaceIntroduceFieldPopup)activeIntroducer).getInitializerPlace(); } } 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 ffdd4960d2b1..942e3d0479fb 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java @@ -160,7 +160,7 @@ public class InplaceIntroduceParameterPopup extends AbstractJavaInplaceIntroduce (PsiLocalVariable)getLocalVariable(), isDeleteLocalVariable, getInputName(), myPanel.isReplaceAllOccurences(), myPanel.getReplaceFieldsWithGetters(), myMustBeFinal || myPanel.isGenerateFinal(), - myPanel.isGenerateDelegate(), + isGenerateDelegate(), getType(), parametersToRemove); final Runnable runnable = new Runnable() { @@ -193,6 +193,10 @@ public class InplaceIntroduceParameterPopup extends AbstractJavaInplaceIntroduce CommandProcessor.getInstance().executeCommand(myProject, runnable, getCommandName(), null); } + public boolean isGenerateDelegate() { + return myPanel.isGenerateDelegate(); + } + @Override protected String getActionName() { return "IntroduceParameter"; diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterDialog.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterDialog.java index 78aca27f06cf..ce5d40cc362b 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterDialog.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterDialog.java @@ -290,6 +290,10 @@ public class IntroduceParameterDialog extends RefactoringDialog { myPanel.setReplaceAllOccurrences(replaceAllOccurrences); } + public void setGenerateDelegate(boolean delegate) { + myPanel.setGenerateDelegate(delegate); + } + private class IntroduceParameterSettingsPanel extends IntroduceParameterSettingsUI { public IntroduceParameterSettingsPanel(Project project, PsiLocalVariable onLocalVariable, @@ -308,5 +312,9 @@ public class IntroduceParameterDialog extends RefactoringDialog { super.updateControls(removeParamsCb); updateFinalState(); } + + public void setGenerateDelegate(boolean delegate) { + myCbGenerateDelegate.setSelected(delegate); + } } } diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java index b974cd9a32ff..98c3c88f3acb 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java @@ -408,6 +408,7 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase implements R String enteredName = null; boolean replaceAllOccurrences = false; + boolean delegate = false; if (isInplaceAvailableOnDataContext) { final AbstractInplaceIntroducer activeIntroducer = AbstractInplaceIntroducer.getActiveIntroducer(myEditor); if (activeIntroducer == null) { @@ -429,6 +430,7 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase implements R occurences = (PsiExpression[])activeIntroducer.getOccurrences(); enteredName = activeIntroducer.getInputName(); replaceAllOccurrences = activeIntroducer.isReplaceAllOccurrences(); + delegate = ((InplaceIntroduceParameterPopup)activeIntroducer).isGenerateDelegate(); } } if (ApplicationManager.getApplication().isUnitTestMode()) { @@ -449,6 +451,7 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase implements R createNameSuggestionGenerator(myExpr, propName, myProject, enteredName), typeSelectorManager, methodToSearchFor, method, getParamsToRemove(method, occurences), mustBeFinal); dialog.setReplaceAllOccurrences(replaceAllOccurrences); + dialog.setGenerateDelegate(delegate); dialog.show(); if (myEditor != null) { myEditor.getSelectionModel().removeSelection(); diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterSettingsUI.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterSettingsUI.java index bb65c24a3599..d9b746d0a5d4 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterSettingsUI.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterSettingsUI.java @@ -59,7 +59,7 @@ public abstract class IntroduceParameterSettingsUI { protected final boolean myIsLocalVariable; protected JCheckBox myCbReplaceAllOccurences = null; - private JCheckBox myCbGenerateDelegate = null; + protected JCheckBox myCbGenerateDelegate = null; public IntroduceParameterSettingsUI(Project project, PsiLocalVariable onLocalVariable,