From 6b8f0d4b527eb25e23692983206228d53e993de0 Mon Sep 17 00:00:00 2001 From: Kirill Kirichenko Date: Thu, 28 May 2020 17:50:04 +0300 Subject: [PATCH] IDEA-210863 Change code analyze status icon. All except mixed state in the inspections table. GitOrigin-RevId: f336d825ebbda9de3453f7718113efd4bd5552cc --- .../resources/messages/InspectionsBundle.properties | 2 +- .../codeHighlighting/HighlightDisplayLevel.java | 9 +++++++-- .../codeInspection/ui/LevelChooserAction.java | 5 ++--- .../codeInspection/ui/table/SeverityRenderer.java | 12 +++++++----- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/platform/analysis-api/resources/messages/InspectionsBundle.properties b/platform/analysis-api/resources/messages/InspectionsBundle.properties index 25b05ff38251..81e42604c1e8 100644 --- a/platform/analysis-api/resources/messages/InspectionsBundle.properties +++ b/platform/analysis-api/resources/messages/InspectionsBundle.properties @@ -86,7 +86,7 @@ inspection.profile.unnamed=Unnamed inspection.tool.availability.in.tree.node=(available for editor highlighting) inspection.tool.availability.in.tree.node1=(available for Analyze|Inspect Code) inspection.error.level.popup.menu.title=Choose Error Level -inspection.edit.severities.text=Edit severities... +inspection.edit.severities.text=Edit Severities... inspection.application.starting.up=Starting up {0} ... inspection.done=done. diff --git a/platform/analysis-api/src/com/intellij/codeHighlighting/HighlightDisplayLevel.java b/platform/analysis-api/src/com/intellij/codeHighlighting/HighlightDisplayLevel.java index 6f3e1e016985..3f3334d09660 100644 --- a/platform/analysis-api/src/com/intellij/codeHighlighting/HighlightDisplayLevel.java +++ b/platform/analysis-api/src/com/intellij/codeHighlighting/HighlightDisplayLevel.java @@ -8,11 +8,13 @@ import com.intellij.openapi.editor.colors.EditorColorsManager; import com.intellij.openapi.editor.colors.TextAttributesKey; import com.intellij.openapi.editor.markup.TextAttributes; import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.IconManager; import com.intellij.ui.JBColor; import com.intellij.ui.scale.JBUIScale; import com.intellij.util.ObjectUtils; import com.intellij.util.ui.ColorIcon; +import com.intellij.util.ui.EmptyIcon; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -37,7 +39,7 @@ public class HighlightDisplayLevel { new ColorizedIcon(CodeInsightColors.WARNINGS_ATTRIBUTES, AllIcons.General.InspectionsWarning)); private static final TextAttributesKey DO_NOT_SHOW_KEY = TextAttributesKey.createTextAttributesKey("DO_NOT_SHOW"); - public static final HighlightDisplayLevel DO_NOT_SHOW = new HighlightDisplayLevel(HighlightSeverity.INFORMATION, createIconByMask(JBColor.gray)); + public static final HighlightDisplayLevel DO_NOT_SHOW = new HighlightDisplayLevel(HighlightSeverity.INFORMATION, EmptyIcon.ICON_0); /** * @deprecated use {@link #WEAK_WARNING} instead */ @@ -131,7 +133,10 @@ public class HighlightDisplayLevel { } public static Icon createIconByKey(@NotNull TextAttributesKey key) { - return new SingleColorIcon(key); + String name = key.getExternalName(); + return StringUtil.containsIgnoreCase(name, "error") ? new ColorizedIcon(key, AllIcons.General.InspectionsError) : + StringUtil.containsIgnoreCase(name, "warning") ? new ColorizedIcon(key, AllIcons.General.InspectionsWarning) : + new SingleColorIcon(key); } @NotNull diff --git a/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/LevelChooserAction.java b/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/LevelChooserAction.java index 45b96905dd5d..8f71b5cff8ea 100644 --- a/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/LevelChooserAction.java +++ b/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/LevelChooserAction.java @@ -14,7 +14,6 @@ import com.intellij.openapi.actionSystem.ex.ComboBoxAction; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.DumbAwareAction; import com.intellij.openapi.project.Project; -import com.intellij.profile.codeInspection.ui.table.SeverityRenderer; import org.jetbrains.annotations.NotNull; import javax.swing.*; @@ -87,7 +86,7 @@ public abstract class LevelChooserAction extends ComboBoxAction implements DumbA myChosen = severity; final Presentation templatePresentation = getTemplatePresentation(); templatePresentation.setText(SingleInspectionProfilePanel.renderSeverity(severity)); - templatePresentation.setIcon(SeverityRenderer.getIcon(HighlightDisplayLevel.find(severity))); + templatePresentation.setIcon(HighlightDisplayLevel.find(severity).getIcon()); } private class HighlightSeverityAction extends DumbAwareAction { @@ -101,7 +100,7 @@ public abstract class LevelChooserAction extends ComboBoxAction implements DumbA mySeverity = severity; final Presentation presentation = getTemplatePresentation(); presentation.setText(SingleInspectionProfilePanel.renderSeverity(severity)); - presentation.setIcon(SeverityRenderer.getIcon(HighlightDisplayLevel.find(severity))); + presentation.setIcon(HighlightDisplayLevel.find(severity).getIcon()); } @Override diff --git a/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/table/SeverityRenderer.java b/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/table/SeverityRenderer.java index 836b4fe59f92..7d1b17683b0f 100644 --- a/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/table/SeverityRenderer.java +++ b/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/table/SeverityRenderer.java @@ -12,6 +12,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.ComboBoxTableRenderer; import com.intellij.openapi.ui.popup.LightweightWindowEvent; import com.intellij.openapi.ui.popup.ListSeparator; +import com.intellij.openapi.util.IconLoader; import com.intellij.profile.codeInspection.ui.LevelChooserAction; import com.intellij.profile.codeInspection.ui.SingleInspectionProfilePanel; import com.intellij.util.ui.ColorIcon; @@ -27,13 +28,14 @@ import java.util.EventObject; import java.util.stream.Stream; public class SeverityRenderer extends ComboBoxTableRenderer { + private static final Icon DEFAULT_DISABLED_ICON = HighlightDisplayLevel.createIconByMask(UIUtil.getLabelDisabledForeground()); + static final HighlightSeverity EDIT_SEVERITIES = new HighlightSeverity(InspectionsBundle.message("inspection.edit.severities.text"), -1); + @NotNull private final Runnable myOnClose; private final ScopesAndSeveritiesTable myTable; @NotNull - private final Icon myDisabledIcon; - @NotNull private final Project myProject; public SeverityRenderer(@NotNull InspectionProfileImpl inspectionProfile, @@ -43,7 +45,6 @@ public class SeverityRenderer extends ComboBoxTableRenderer { super(getSeverities(inspectionProfile)); myOnClose = onClose; myTable = table; - myDisabledIcon = HighlightDisplayLevel.createIconByMask(UIUtil.getLabelDisabledForeground()); myProject = project; } @@ -70,7 +71,8 @@ public class SeverityRenderer extends ComboBoxTableRenderer { @Override protected void customizeComponent(HighlightSeverity value, JTable table, boolean isSelected) { super.customizeComponent(value, table, isSelected); - setDisabledIcon(myDisabledIcon); + HighlightDisplayLevel hdl = HighlightDisplayLevel.find(value); + setDisabledIcon(hdl != null ? IconLoader.getDisabledIcon(hdl.getIcon()) : DEFAULT_DISABLED_ICON); } @Override @@ -82,7 +84,7 @@ public class SeverityRenderer extends ComboBoxTableRenderer { protected Icon getIconFor(@NotNull final HighlightSeverity value) { return value == EDIT_SEVERITIES ? EmptyIcon.create(HighlightDisplayLevel.getEmptyIconDim()) - : getIcon(HighlightDisplayLevel.find(value)); + : HighlightDisplayLevel.find(value).getIcon(); } @Override