mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fix validation for Introduce parameter dialog
This commit is contained in:
+12
-12
@@ -22,6 +22,7 @@ import com.intellij.openapi.help.HelpManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.ui.Splitter;
|
||||
import com.intellij.openapi.ui.ValidationInfo;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.refactoring.HelpID;
|
||||
import com.intellij.refactoring.ui.ComboBoxVisibilityPanel;
|
||||
@@ -55,9 +56,6 @@ import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
import javax.swing.event.EventListenerList;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.InputEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.EventListener;
|
||||
@@ -88,12 +86,12 @@ public class GroovyExtractMethodDialog extends DialogWrapper {
|
||||
myProject = info.getProject();
|
||||
myHelper = new ExtractMethodInfoHelper(info, "", owner, false);
|
||||
|
||||
setUpNameField();
|
||||
myParameterTablePanel.init(myHelper);
|
||||
|
||||
setModal(true);
|
||||
setTitle(GroovyExtractMethodHandler.REFACTORING_NAME);
|
||||
init();
|
||||
setUpNameField();
|
||||
setUpDialog();
|
||||
update();
|
||||
}
|
||||
@@ -156,13 +154,7 @@ public class GroovyExtractMethodDialog extends DialogWrapper {
|
||||
}
|
||||
|
||||
private void setUpNameField() {
|
||||
|
||||
contentPane.registerKeyboardAction(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
myNameField.requestFocus();
|
||||
}
|
||||
}, KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.ALT_MASK), JComponent.WHEN_IN_FOCUSED_WINDOW);
|
||||
|
||||
myNameLabel.setLabelFor(myNameField);
|
||||
myNameField.addDocumentListener(new DocumentListener() {
|
||||
public void beforeDocumentChange(DocumentEvent event) {
|
||||
}
|
||||
@@ -193,7 +185,15 @@ public class GroovyExtractMethodDialog extends DialogWrapper {
|
||||
String text = getEnteredName();
|
||||
myHelper.setName(text);
|
||||
updateSignature();
|
||||
setOKActionEnabled(GroovyNamesUtil.isIdentifier(text));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ValidationInfo doValidate() {
|
||||
final String text = getEnteredName();
|
||||
if (!GroovyNamesUtil.isIdentifier(text)) {
|
||||
return new ValidationInfo(GroovyRefactoringBundle.message("name.is.wrong", text), myNameField);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
+23
-9
@@ -17,21 +17,22 @@ package org.jetbrains.plugins.groovy.refactoring.introduce.parameter;
|
||||
|
||||
import com.intellij.openapi.application.AccessToken;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.ui.Splitter;
|
||||
import com.intellij.openapi.ui.ValidationInfo;
|
||||
import com.intellij.openapi.ui.VerticalFlowLayout;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiField;
|
||||
import com.intellij.psi.PsiType;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.refactoring.BaseRefactoringProcessor;
|
||||
import com.intellij.refactoring.JavaRefactoringSettings;
|
||||
import com.intellij.refactoring.RefactoringBundle;
|
||||
import com.intellij.refactoring.ui.NameSuggestionsField;
|
||||
import com.intellij.refactoring.ui.RefactoringDialog;
|
||||
import com.intellij.ui.IdeBorderFactory;
|
||||
import com.intellij.ui.components.JBRadioButton;
|
||||
import com.intellij.util.ui.GridBag;
|
||||
@@ -47,10 +48,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrVariable;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.params.GrParameter;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod;
|
||||
import org.jetbrains.plugins.groovy.refactoring.GrRefactoringError;
|
||||
import org.jetbrains.plugins.groovy.refactoring.GroovyNameSuggestionUtil;
|
||||
import org.jetbrains.plugins.groovy.refactoring.GroovyRefactoringBundle;
|
||||
import org.jetbrains.plugins.groovy.refactoring.HelpID;
|
||||
import org.jetbrains.plugins.groovy.refactoring.*;
|
||||
import org.jetbrains.plugins.groovy.refactoring.extract.ExtractUtil;
|
||||
import org.jetbrains.plugins.groovy.refactoring.extract.ParameterInfo;
|
||||
import org.jetbrains.plugins.groovy.refactoring.extract.ParameterTablePanel;
|
||||
@@ -73,7 +71,7 @@ import java.awt.event.ItemListener;
|
||||
|
||||
import static com.intellij.refactoring.IntroduceParameterRefactoring.*;
|
||||
|
||||
public class GrIntroduceParameterDialog extends RefactoringDialog implements GrIntroduceDialog<GrIntroduceParameterSettings> {
|
||||
public class GrIntroduceParameterDialog extends DialogWrapper implements GrIntroduceDialog<GrIntroduceParameterSettings> {
|
||||
private GrTypeComboBox myTypeComboBox;
|
||||
private NameSuggestionsField myNameSuggestionsField;
|
||||
private JCheckBox myDeclareFinalCheckBox;
|
||||
@@ -89,10 +87,12 @@ public class GrIntroduceParameterDialog extends RefactoringDialog implements GrI
|
||||
private ParameterTablePanel myTable;
|
||||
private JPanel mySignaturePanel;
|
||||
private JCheckBox myForceReturnCheckBox;
|
||||
private Project myProject;
|
||||
|
||||
public GrIntroduceParameterDialog(IntroduceParameterInfo info) {
|
||||
super(info.getProject(), true);
|
||||
myInfo = info;
|
||||
myProject = info.getProject();
|
||||
|
||||
TObjectIntHashMap<GrParameter> parametersToRemove = GroovyIntroduceParameterUtil.findParametersToRemove(info);
|
||||
toRemoveCBs = new TObjectIntHashMap<JCheckBox>(parametersToRemove.size());
|
||||
@@ -386,7 +386,7 @@ public class GrIntroduceParameterDialog extends RefactoringDialog implements GrI
|
||||
@Override
|
||||
protected ValidationInfo doValidate() {
|
||||
final String text = myNameSuggestionsField.getEnteredName();
|
||||
if (!StringUtil.isJavaIdentifier(text)) {
|
||||
if (!GroovyNamesUtil.isIdentifier(text)) {
|
||||
return new ValidationInfo(GroovyRefactoringBundle.message("name.is.wrong", text), myNameSuggestionsField);
|
||||
}
|
||||
|
||||
@@ -433,8 +433,11 @@ public class GrIntroduceParameterDialog extends RefactoringDialog implements GrI
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doAction() {
|
||||
public void doOKAction() {
|
||||
saveSettings();
|
||||
|
||||
super.doOKAction();
|
||||
|
||||
final GrParametersOwner toReplaceIn = myInfo.getToReplaceIn();
|
||||
|
||||
final GrExpression expr = findExpr();
|
||||
@@ -482,6 +485,17 @@ public class GrIntroduceParameterDialog extends RefactoringDialog implements GrI
|
||||
}
|
||||
}
|
||||
|
||||
protected void invokeRefactoring(BaseRefactoringProcessor processor) {
|
||||
final Runnable prepareSuccessfulCallback = new Runnable() {
|
||||
public void run() {
|
||||
close(DialogWrapper.OK_EXIT_CODE);
|
||||
}
|
||||
};
|
||||
processor.setPrepareSuccessfulSwingThreadCallback(prepareSuccessfulCallback);
|
||||
processor.setPreviewUsages(false);
|
||||
processor.run();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GrIntroduceParameterSettings getSettings() {
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user