From e420d8b36a1446dfd0d4be7dd02cd7b9583831bf Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 14 Sep 2010 20:29:47 +0400 Subject: [PATCH] change signature: setup default type value as default type; setup selection --- .../JavaChangeSignatureUsageProcessor.java | 12 ++++++------ .../changeSignature/DefaultValueChooser.form | 6 ++++-- .../changeSignature/DefaultValueChooser.java | 7 ++++++- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureUsageProcessor.java b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureUsageProcessor.java index 60e76508a167..b878b76f45ad 100644 --- a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureUsageProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureUsageProcessor.java @@ -28,10 +28,7 @@ import com.intellij.psi.codeStyle.JavaCodeStyleManager; import com.intellij.psi.codeStyle.VariableKind; import com.intellij.psi.scope.processor.VariablesProcessor; import com.intellij.psi.scope.util.PsiScopesUtil; -import com.intellij.psi.util.MethodSignatureUtil; -import com.intellij.psi.util.PsiTreeUtil; -import com.intellij.psi.util.PsiUtil; -import com.intellij.psi.util.TypeConversionUtil; +import com.intellij.psi.util.*; import com.intellij.refactoring.RefactoringBundle; import com.intellij.refactoring.rename.RenameUtil; import com.intellij.refactoring.util.*; @@ -542,7 +539,9 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr if (usageInfo instanceof MethodCallUsageInfo) { MethodCallUsageInfo methodCallUsageInfo = (MethodCallUsageInfo)usageInfo; if (methodCallUsageInfo.isToChangeArguments()){ - final boolean needDefaultValue = needDefaultValue(changeInfo, RefactoringUtil.getEnclosingMethod(methodCallUsageInfo.getElement())); + final PsiElement element = methodCallUsageInfo.getElement(); + if (element == null) continue; + final boolean needDefaultValue = needDefaultValue(changeInfo, RefactoringUtil.getEnclosingMethod(element)); if (needDefaultValue) { final ParameterInfo[] parameters = changeInfo.getNewParameters(); for (ParameterInfo parameter : parameters) { @@ -550,7 +549,8 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr if (defaultValue == null && parameter.getOldIndex() == -1) { ((ParameterInfoImpl)parameter).setDefaultValue(""); if (!ApplicationManager.getApplication().isUnitTestMode()) { - final DefaultValueChooser chooser = new DefaultValueChooser(project, parameter.getName()); + final PsiType type = ((ParameterInfoImpl)parameter).getTypeWrapper().getType(element, element.getManager()); + final DefaultValueChooser chooser = new DefaultValueChooser(project, parameter.getName(), PsiTypesUtil.getDefaultValueOfType(type)); chooser.show(); if (chooser.isOK()) { if (chooser.feelLucky()) { diff --git a/platform/lang-impl/src/com/intellij/refactoring/changeSignature/DefaultValueChooser.form b/platform/lang-impl/src/com/intellij/refactoring/changeSignature/DefaultValueChooser.form index 3ba0c32c2a0c..f12544a32d5f 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/changeSignature/DefaultValueChooser.form +++ b/platform/lang-impl/src/com/intellij/refactoring/changeSignature/DefaultValueChooser.form @@ -2,7 +2,7 @@
- + @@ -72,7 +72,9 @@ - + + + diff --git a/platform/lang-impl/src/com/intellij/refactoring/changeSignature/DefaultValueChooser.java b/platform/lang-impl/src/com/intellij/refactoring/changeSignature/DefaultValueChooser.java index 56e1dbce8074..62a2d2bc1cc2 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/changeSignature/DefaultValueChooser.java +++ b/platform/lang-impl/src/com/intellij/refactoring/changeSignature/DefaultValueChooser.java @@ -38,13 +38,17 @@ public class DefaultValueChooser extends DialogWrapper{ private JPanel myWholePanel; private JLabel myBlankDescription; - public DefaultValueChooser(Project project, String name) { + public DefaultValueChooser(Project project, String name, String defaultValue) { super(project); new RadioUpDownListener(myLeaveBlankRadioButton, myFeelLuckyRadioButton, myUseValueRadioButton); final ActionListener actionListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { myValueEditor.setEnabled(myUseValueRadioButton.isSelected()); + if (myUseValueRadioButton.isSelected()) { + myValueEditor.selectAll(); + myValueEditor.requestFocus(); + } } }; myLeaveBlankRadioButton.addActionListener(actionListener); @@ -58,6 +62,7 @@ public class DefaultValueChooser extends DialogWrapper{ "Blank place would be used otherwise"); myFeelLuckyDescription.setUI(new MultiLineLabelUI()); myBlankDescription.setUI(new MultiLineLabelUI()); + myValueEditor.setText(defaultValue); init(); }