mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-18 12:31:26 +07:00
[java-inspections] Convert to OptPane
GitOrigin-RevId: 4043f5d75abf085d67e9f567232b16cc7dcd65c6
This commit is contained in:
committed by
intellij-monorepo-bot
parent
676dd7163b
commit
0db79fcd6d
@@ -18,26 +18,22 @@ package org.jetbrains.java.generate.inspection;
|
||||
import com.intellij.codeInsight.TestFrameworks;
|
||||
import com.intellij.codeInspection.ProblemHighlightType;
|
||||
import com.intellij.codeInspection.ProblemsHolder;
|
||||
import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel;
|
||||
import com.intellij.codeInspection.ui.RegExFormatter;
|
||||
import com.intellij.codeInspection.ui.RegExInputVerifier;
|
||||
import com.intellij.codeInspection.options.OptPane;
|
||||
import com.intellij.codeInspection.options.RegexValidator;
|
||||
import com.intellij.java.analysis.JavaAnalysisBundle;
|
||||
import com.intellij.openapi.util.DefaultJDOMExternalizer;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.InheritanceUtil;
|
||||
import com.intellij.ui.DocumentAdapter;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.java.generate.GenerateToStringContext;
|
||||
import org.jetbrains.java.generate.GenerateToStringUtils;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.DocumentEvent;
|
||||
import javax.swing.text.Document;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.regex.PatternSyntaxException;
|
||||
|
||||
import static com.intellij.codeInspection.options.OptPane.*;
|
||||
|
||||
/**
|
||||
* Inspection to check if the current class overrides the toString() method.
|
||||
* <p/>
|
||||
@@ -163,44 +159,32 @@ public class ClassHasNoToStringMethodInspection extends AbstractToStringInspecti
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the options panel in the settings for user changeable options.
|
||||
*
|
||||
* @return the options panel
|
||||
*/
|
||||
@Override
|
||||
public JComponent createOptionsPanel() {
|
||||
final JFormattedTextField excludeClassNamesField = new JFormattedTextField(new RegExFormatter());
|
||||
excludeClassNamesField.setValue(excludeClassNamesPattern);
|
||||
excludeClassNamesField.setColumns(25);
|
||||
excludeClassNamesField.setInputVerifier(new RegExInputVerifier());
|
||||
excludeClassNamesField.setFocusLostBehavior(JFormattedTextField.COMMIT);
|
||||
excludeClassNamesField.setMinimumSize(excludeClassNamesField.getPreferredSize());
|
||||
UIUtil.fixFormattedField(excludeClassNamesField);
|
||||
Document document = excludeClassNamesField.getDocument();
|
||||
document.addDocumentListener(new DocumentAdapter() {
|
||||
@Override
|
||||
public @NotNull OptPane getOptionsPane() {
|
||||
return pane(
|
||||
string("excludeClassNames", JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.exclude.classes.reg.exp.option"),
|
||||
30, new RegexValidator()),
|
||||
checkbox("excludeException", JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.exception.classes.option")),
|
||||
checkbox("excludeDeprecated",
|
||||
JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.deprecated.classes.option")),
|
||||
checkbox("excludeEnum", JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.enum.classes.option")),
|
||||
checkbox("excludeRecords", JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.records.option")),
|
||||
checkbox("excludeAbstract", JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.abstract.classes.option")),
|
||||
checkbox("excludeTestCode", JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.test.classes.option")),
|
||||
checkbox("excludeInnerClasses", JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.inner.classes.option"))
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void textChanged(@NotNull DocumentEvent e) {
|
||||
try {
|
||||
excludeClassNamesField.commitEdit();
|
||||
excludeClassNamesPattern = (Pattern)excludeClassNamesField.getValue();
|
||||
excludeClassNames = excludeClassNamesPattern.pattern();
|
||||
} catch (final Exception ignore) {}
|
||||
}
|
||||
});
|
||||
|
||||
final MultipleCheckboxOptionsPanel optionsPanel = new MultipleCheckboxOptionsPanel(this);
|
||||
optionsPanel.addRow(new JLabel(JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.exclude.classes.reg.exp.option")), excludeClassNamesField);
|
||||
optionsPanel.addCheckbox(JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.exception.classes.option"), "excludeException");
|
||||
optionsPanel.addCheckbox(JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.deprecated.classes.option"), "excludeDeprecated");
|
||||
optionsPanel.addCheckbox(JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.enum.classes.option"), "excludeEnum");
|
||||
optionsPanel.addCheckbox(JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.records.option"), "excludeRecords");
|
||||
optionsPanel.addCheckbox(JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.abstract.classes.option"), "excludeAbstract");
|
||||
optionsPanel.addCheckbox(JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.test.classes.option"), "excludeTestCode");
|
||||
optionsPanel.addCheckbox(JavaAnalysisBundle.message("inspection.class.has.no.to.string.method.ignore.inner.classes.option"), "excludeInnerClasses");
|
||||
return optionsPanel;
|
||||
@Override
|
||||
public void setOption(@NotNull String bindId, Object value) {
|
||||
super.setOption(bindId, value);
|
||||
try {
|
||||
excludeClassNamesPattern = Pattern.compile(excludeClassNames);
|
||||
}
|
||||
catch (PatternSyntaxException ignore) {
|
||||
excludeClassNamesPattern = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readSettings(@NotNull Element node) {
|
||||
|
||||
Reference in New Issue
Block a user