From bb5468b39e061af4d6b3c48d1f4b4de2f21630b2 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Tue, 13 Dec 2022 14:53:34 +0100 Subject: [PATCH] [inspections] Use OptPane GitOrigin-RevId: f93b9c7e714b5e8509c0060eacb75f16df9d56cb --- .../MethodCouplingInspection.java | 22 ++++------ ...ltipleReturnPointsPerMethodInspection.java | 22 ++++------ ...rlyComplexBooleanExpressionInspection.java | 22 ++++------ .../ig/migration/IfCanBeSwitchInspection.java | 44 ++++--------------- 4 files changed, 32 insertions(+), 78 deletions(-) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/methodmetrics/MethodCouplingInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/methodmetrics/MethodCouplingInspection.java index f36eb97196f0..916486d99274 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/methodmetrics/MethodCouplingInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/methodmetrics/MethodCouplingInspection.java @@ -15,13 +15,13 @@ */ package com.siyeh.ig.methodmetrics; -import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel; +import com.intellij.codeInspection.options.OptPane; import com.intellij.psi.PsiMethod; import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.BaseInspectionVisitor; import org.jetbrains.annotations.NotNull; -import javax.swing.*; +import static com.intellij.codeInspection.options.OptPane.*; public class MethodCouplingInspection extends MethodMetricInspection { @@ -59,18 +59,12 @@ public class MethodCouplingInspection extends MethodMetricInspection { } @Override - public JComponent createOptionsPanel() { - final MultipleCheckboxOptionsPanel panel = new MultipleCheckboxOptionsPanel(this); - final String configurationLabel = getConfigurationLabel(); - final JLabel label = new JLabel(configurationLabel); - - final JFormattedTextField valueField = prepareNumberEditor("m_limit"); - - panel.addRow(label, valueField); - panel.addCheckbox(InspectionGadgetsBundle.message("include.java.system.classes.option"), "m_includeJavaClasses"); - panel.addCheckbox(InspectionGadgetsBundle.message("include.library.classes.option"), "m_includeLibraryClasses"); - - return panel; + public @NotNull OptPane getOptionsPane() { + return pane( + number("m_limit", getConfigurationLabel(), 1, 1000), + checkbox("m_includeJavaClasses", InspectionGadgetsBundle.message("include.java.system.classes.option")), + checkbox("m_includeLibraryClasses", InspectionGadgetsBundle.message("include.library.classes.option")) + ); } @Override diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/methodmetrics/MultipleReturnPointsPerMethodInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/methodmetrics/MultipleReturnPointsPerMethodInspection.java index 82bf55dc9d36..619dee9879ed 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/methodmetrics/MultipleReturnPointsPerMethodInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/methodmetrics/MultipleReturnPointsPerMethodInspection.java @@ -15,7 +15,7 @@ */ package com.siyeh.ig.methodmetrics; -import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel; +import com.intellij.codeInspection.options.OptPane; import com.intellij.psi.PsiMethod; import com.intellij.psi.PsiStatement; import com.intellij.psi.PsiType; @@ -25,7 +25,7 @@ import com.siyeh.ig.psiutils.ControlFlowUtils; import com.siyeh.ig.psiutils.MethodUtils; import org.jetbrains.annotations.NotNull; -import javax.swing.*; +import static com.intellij.codeInspection.options.OptPane.*; public class MultipleReturnPointsPerMethodInspection extends MethodMetricInspection { @@ -62,18 +62,12 @@ public class MultipleReturnPointsPerMethodInspection } @Override - public JComponent createOptionsPanel() { - final MultipleCheckboxOptionsPanel panel = new MultipleCheckboxOptionsPanel(this); - final JLabel label = new JLabel(InspectionGadgetsBundle.message( - "return.point.limit.option")); - final JFormattedTextField termLimitTextField = - prepareNumberEditor("m_limit"); - - panel.addRow(label, termLimitTextField); - panel.addCheckbox(InspectionGadgetsBundle.message("ignore.guard.clauses.option"), "ignoreGuardClauses"); - panel.addCheckbox(InspectionGadgetsBundle.message("ignore.for.equals.methods.option"), "ignoreEqualsMethod"); - - return panel; + public @NotNull OptPane getOptionsPane() { + return pane( + number("m_limit", InspectionGadgetsBundle.message("return.point.limit.option"), 1, 100), + checkbox("ignoreGuardClauses", InspectionGadgetsBundle.message("ignore.guard.clauses.option")), + checkbox("ignoreEqualsMethod", InspectionGadgetsBundle.message("ignore.for.equals.methods.option")) + ); } @Override diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/OverlyComplexBooleanExpressionInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/OverlyComplexBooleanExpressionInspection.java index 32ceb811023a..c1d69836931a 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/OverlyComplexBooleanExpressionInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/OverlyComplexBooleanExpressionInspection.java @@ -15,7 +15,7 @@ */ package com.siyeh.ig.controlflow; -import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel; +import com.intellij.codeInspection.options.OptPane; import com.intellij.psi.*; import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; @@ -27,10 +27,9 @@ import com.siyeh.ig.fixes.ExtractMethodFix; import com.siyeh.ig.psiutils.ExpressionUtils; import org.jetbrains.annotations.NotNull; -import javax.swing.*; import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; + +import static com.intellij.codeInspection.options.OptPane.*; public class OverlyComplexBooleanExpressionInspection extends BaseInspection { private static final TokenSet s_booleanOperators = @@ -58,16 +57,11 @@ public class OverlyComplexBooleanExpressionInspection extends BaseInspection { } @Override - public JComponent createOptionsPanel() { - final MultipleCheckboxOptionsPanel panel = new MultipleCheckboxOptionsPanel(this); - - final JLabel label = new JLabel(InspectionGadgetsBundle.message("overly.complex.boolean.expression.max.terms.option")); - final JFormattedTextField termLimitTextField = prepareNumberEditor("m_limit"); - - panel.addRow(label, termLimitTextField); - panel.addCheckbox(InspectionGadgetsBundle.message("overly.complex.boolean.expression.ignore.option"), "m_ignorePureConjunctionsDisjunctions"); - - return panel; + public @NotNull OptPane getOptionsPane() { + return pane( + number("m_limit", InspectionGadgetsBundle.message("overly.complex.boolean.expression.max.terms.option"), 2, 100), + checkbox("m_ignorePureConjunctionsDisjunctions", InspectionGadgetsBundle.message("overly.complex.boolean.expression.ignore.option")) + ); } @Override diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/migration/IfCanBeSwitchInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/migration/IfCanBeSwitchInspection.java index dff5c096316c..a4e7e1516395 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/migration/IfCanBeSwitchInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/migration/IfCanBeSwitchInspection.java @@ -9,7 +9,7 @@ import com.intellij.codeInspection.EnhancedSwitchMigrationInspection; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.codeInspection.dataFlow.NullabilityUtil; -import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel; +import com.intellij.codeInspection.options.OptPane; import com.intellij.codeInspection.util.IntentionFamilyName; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.WriteExternalException; @@ -22,7 +22,6 @@ import com.intellij.psi.util.JavaPsiPatternUtil; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiUtil; import com.intellij.psi.util.TypeConversionUtil; -import com.intellij.ui.DocumentAdapter; import com.intellij.util.containers.ContainerUtil; import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.BaseInspection; @@ -35,11 +34,6 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import javax.swing.*; -import javax.swing.event.DocumentEvent; -import javax.swing.text.Document; -import java.text.NumberFormat; -import java.text.ParseException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -76,35 +70,13 @@ public class IfCanBeSwitchInspection extends BaseInspection { } @Override - public JComponent createOptionsPanel() { - final MultipleCheckboxOptionsPanel panel = new MultipleCheckboxOptionsPanel(this); - final JLabel label = new JLabel(InspectionGadgetsBundle.message("if.can.be.switch.minimum.branch.option")); - final NumberFormat formatter = NumberFormat.getIntegerInstance(); - formatter.setParseIntegerOnly(true); - final JFormattedTextField valueField = new JFormattedTextField(formatter); - valueField.setValue(Integer.valueOf(minimumBranches)); - valueField.setColumns(2); - final Document document = valueField.getDocument(); - document.addDocumentListener(new DocumentAdapter() { - @Override - public void textChanged(@NotNull DocumentEvent e) { - try { - valueField.commitEdit(); - minimumBranches = - ((Number)valueField.getValue()).intValue(); - } - catch (ParseException ignore) { - // No luck this time - } - } - }); - - panel.addRow(label, valueField); - panel.addCheckbox(InspectionGadgetsBundle.message("if.can.be.switch.int.option"), "suggestIntSwitches"); - panel.addCheckbox(InspectionGadgetsBundle.message("if.can.be.switch.enum.option"), "suggestEnumSwitches"); - panel.addCheckbox(InspectionGadgetsBundle.message("if.can.be.switch.null.safe.option"), "onlySuggestNullSafe"); - - return panel; + public @NotNull OptPane getOptionsPane() { + return OptPane.pane( + OptPane.number("minimumBranches", InspectionGadgetsBundle.message("if.can.be.switch.minimum.branch.option"), 1, 100), + OptPane.checkbox("suggestIntSwitches", InspectionGadgetsBundle.message("if.can.be.switch.int.option")), + OptPane.checkbox("suggestEnumSwitches", InspectionGadgetsBundle.message("if.can.be.switch.enum.option")), + OptPane.checkbox("onlySuggestNullSafe", InspectionGadgetsBundle.message("if.can.be.switch.null.safe.option")) + ); } public void setOnlySuggestNullSafe(boolean onlySuggestNullSafe) {