From fcecbe8d79b7135255aa84b91011bbb32ca6d3b4 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Tue, 26 Sep 2017 14:30:35 +0200 Subject: [PATCH] naming conventions: allow default delegation for more cases, ui --- .../NamingConventionWithFallbackBean.java | 4 ++-- .../AbstractNamingConventionInspection.java | 17 ++++++++++++++--- .../ig/naming/AnnotationNamingConvention.java | 3 ++- .../naming/EnumeratedClassNamingConvention.java | 3 ++- .../ig/naming/InterfaceNamingConvention.java | 3 ++- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/platform/analysis-impl/src/com/intellij/codeInspection/NamingConventionWithFallbackBean.java b/platform/analysis-impl/src/com/intellij/codeInspection/NamingConventionWithFallbackBean.java index 99604bdf8ee8..12b3669a9734 100644 --- a/platform/analysis-impl/src/com/intellij/codeInspection/NamingConventionWithFallbackBean.java +++ b/platform/analysis-impl/src/com/intellij/codeInspection/NamingConventionWithFallbackBean.java @@ -23,8 +23,8 @@ import java.awt.*; public class NamingConventionWithFallbackBean extends NamingConventionBean { public boolean inheritDefaultSettings = false; - public NamingConventionWithFallbackBean(String regex, int minLength, int maxLength) { - super(regex, minLength, maxLength); + public NamingConventionWithFallbackBean(String regex, int minLength, int maxLength, String... predefinedNames) { + super(regex, minLength, maxLength, predefinedNames); } public boolean isInheritDefaultSettings() { diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/naming/AbstractNamingConventionInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/naming/AbstractNamingConventionInspection.java index 13472f7878df..a3617f748d22 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/naming/AbstractNamingConventionInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/naming/AbstractNamingConventionInspection.java @@ -18,11 +18,13 @@ package com.siyeh.ig.naming; import com.intellij.codeInspection.NamingConvention; import com.intellij.codeInspection.NamingConventionBean; import com.intellij.codeInspection.NamingConventionWithFallbackBean; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.InvalidDataException; import com.intellij.ui.CheckBoxList; import com.intellij.ui.CheckBoxListListener; import com.intellij.ui.components.JBScrollPane; import com.intellij.util.ui.JBUI; +import com.intellij.util.ui.UIUtil; import com.intellij.util.xmlb.XmlSerializationException; import com.intellij.util.xmlb.XmlSerializer; import com.siyeh.ig.BaseInspection; @@ -39,6 +41,8 @@ import java.util.List; import java.util.function.Consumer; public abstract class AbstractNamingConventionInspection extends BaseInspection { + private static final Logger LOG = Logger.getInstance(AbstractNamingConventionInspection.class); + protected final Map> myNamingConventions = new LinkedHashMap<>(); protected final Map myNamingConventionBeans = new LinkedHashMap<>(); protected final Set myDisabledShortNames = new HashSet<>(); @@ -46,8 +50,12 @@ public abstract class AbstractNamingConventionInspection extends BaseInspecti public AbstractNamingConventionInspection(NamingConvention[] extensions, final String defaultConventionShortName) { for (NamingConvention convention : extensions) { - myNamingConventions.put(convention.getShortName(), convention); - myNamingConventionBeans.put(convention.getShortName(), convention.createDefaultBean()); + String shortName = convention.getShortName(); + NamingConvention oldConvention = myNamingConventions.put(shortName, convention); + if (oldConvention != null) { + LOG.error("Duplicated short names: " + shortName + " first: " + oldConvention + "; second: " + convention); + } + myNamingConventionBeans.put(shortName, convention.createDefaultBean()); } initDisabledState(); myDefaultConventionShortName = defaultConventionShortName; @@ -158,7 +166,9 @@ public abstract class AbstractNamingConventionInspection extends BaseInspecti int selectedIndex = list.getSelectedIndex(); NamingConvention item = list.getItemAt(selectedIndex); if (item != null) { - layout.show(descriptionPanel, item.getShortName()); + String shortName = item.getShortName(); + layout.show(descriptionPanel, shortName); + UIUtil.setEnabled(descriptionPanel, list.isItemSelected(selectedIndex), true); } }); list.setCheckBoxListListener(new CheckBoxListListener() { @@ -166,6 +176,7 @@ public abstract class AbstractNamingConventionInspection extends BaseInspecti public void checkBoxSelectionChanged(int index, boolean value) { NamingConvention convention = new ArrayList<>(myNamingConventions.values()).get(index); setEnabled(value, convention.getShortName()); + UIUtil.setEnabled(descriptionPanel, value, true); } }); list.setSelectedIndex(0); diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/naming/AnnotationNamingConvention.java b/plugins/InspectionGadgets/src/com/siyeh/ig/naming/AnnotationNamingConvention.java index f71d3045dc64..cddce576d9c8 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/naming/AnnotationNamingConvention.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/naming/AnnotationNamingConvention.java @@ -17,6 +17,7 @@ package com.siyeh.ig.naming; import com.intellij.codeInspection.NamingConvention; import com.intellij.codeInspection.NamingConventionBean; +import com.intellij.codeInspection.NamingConventionWithFallbackBean; import com.intellij.psi.PsiClass; import com.siyeh.InspectionGadgetsBundle; @@ -27,7 +28,7 @@ public class AnnotationNamingConvention extends NamingConvention { @Override public NamingConventionBean createDefaultBean() { - return new NamingConventionBean("[A-Z][A-Za-z\\d]*", DEFAULT_MIN_LENGTH, DEFAULT_MAX_LENGTH); + return new NamingConventionWithFallbackBean("[A-Z][A-Za-z\\d]*", DEFAULT_MIN_LENGTH, DEFAULT_MAX_LENGTH); } @Override diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/naming/EnumeratedClassNamingConvention.java b/plugins/InspectionGadgets/src/com/siyeh/ig/naming/EnumeratedClassNamingConvention.java index 44b332686b34..1a7d608a4914 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/naming/EnumeratedClassNamingConvention.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/naming/EnumeratedClassNamingConvention.java @@ -17,6 +17,7 @@ package com.siyeh.ig.naming; import com.intellij.codeInspection.NamingConvention; import com.intellij.codeInspection.NamingConventionBean; +import com.intellij.codeInspection.NamingConventionWithFallbackBean; import com.intellij.psi.PsiClass; import com.siyeh.InspectionGadgetsBundle; @@ -27,7 +28,7 @@ public class EnumeratedClassNamingConvention extends NamingConvention @Override public NamingConventionBean createDefaultBean() { - return new NamingConventionBean("[A-Z][A-Za-z\\d]*", DEFAULT_MIN_LENGTH, DEFAULT_MAX_LENGTH); + return new NamingConventionWithFallbackBean("[A-Z][A-Za-z\\d]*", DEFAULT_MIN_LENGTH, DEFAULT_MAX_LENGTH); } @Override diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/naming/InterfaceNamingConvention.java b/plugins/InspectionGadgets/src/com/siyeh/ig/naming/InterfaceNamingConvention.java index 6564ea662c92..1edd444a987f 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/naming/InterfaceNamingConvention.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/naming/InterfaceNamingConvention.java @@ -17,6 +17,7 @@ package com.siyeh.ig.naming; import com.intellij.codeInspection.NamingConvention; import com.intellij.codeInspection.NamingConventionBean; +import com.intellij.codeInspection.NamingConventionWithFallbackBean; import com.intellij.psi.PsiClass; import com.siyeh.InspectionGadgetsBundle; @@ -27,7 +28,7 @@ public class InterfaceNamingConvention extends NamingConvention { @Override public NamingConventionBean createDefaultBean() { - return new NamingConventionBean("[A-Z][A-Za-z\\d]*", DEFAULT_MIN_LENGTH, DEFAULT_MAX_LENGTH); + return new NamingConventionWithFallbackBean("[A-Z][A-Za-z\\d]*", DEFAULT_MIN_LENGTH, DEFAULT_MAX_LENGTH); } @Override