From 1cd7011a82f670425b7c470bdb7fa32d84d8b06f Mon Sep 17 00:00:00 2001 From: Dmitry Batkovich Date: Tue, 24 May 2016 11:09:51 +0300 Subject: [PATCH] inspection toolwindow: use getFamilyName of suppress fixes to show in popup IDEA-156180 --- .../ui/actions/InspectionViewActionBase.java | 4 ++-- .../ui/actions/KeyAwareInspectionViewAction.java | 10 +++++----- .../actions/suppress/SuppressActionWrapper.java | 15 +++++++++++++-- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/actions/InspectionViewActionBase.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/actions/InspectionViewActionBase.java index d95cb42c2414..b073faa635ae 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/actions/InspectionViewActionBase.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/actions/InspectionViewActionBase.java @@ -39,12 +39,12 @@ public abstract class InspectionViewActionBase extends AnAction { @Override public final void update(AnActionEvent e) { final InspectionResultsView view = getView(e); - final boolean enabled = view != null && isEnabled(view); + final boolean enabled = view != null && isEnabled(view, e); final Presentation presentation = e.getPresentation(); presentation.setEnabled(enabled); } - protected boolean isEnabled(@NotNull InspectionResultsView view) { + protected boolean isEnabled(@NotNull InspectionResultsView view, AnActionEvent e) { return true; } diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/actions/KeyAwareInspectionViewAction.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/actions/KeyAwareInspectionViewAction.java index 5bafdcd20f27..c5151ecb4078 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/actions/KeyAwareInspectionViewAction.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/actions/KeyAwareInspectionViewAction.java @@ -49,7 +49,7 @@ public abstract class KeyAwareInspectionViewAction extends InspectionViewActionB } @Override - protected boolean isEnabled(@NotNull InspectionResultsView view) { + protected boolean isEnabled(@NotNull InspectionResultsView view, AnActionEvent e) { final InspectionToolWrapper wrapper = view.getTree().getSelectedToolWrapper(); return wrapper != null && HighlightDisplayKey.find(wrapper.getShortName()) != null; } @@ -69,8 +69,8 @@ public abstract class KeyAwareInspectionViewAction extends InspectionViewActionB } @Override - protected boolean isEnabled(@NotNull InspectionResultsView view) { - final boolean enabled = super.isEnabled(view); + protected boolean isEnabled(@NotNull InspectionResultsView view, AnActionEvent e) { + final boolean enabled = super.isEnabled(view, e); if (!enabled) return false; final HighlightDisplayKey key = HighlightDisplayKey.find(view.getTree().getSelectedToolWrapper().getShortName()); final InspectionProfile profile = (InspectionProfile)InspectionProjectProfileManager.getInstance(view.getProject()).getProjectProfileImpl(); @@ -116,8 +116,8 @@ public abstract class KeyAwareInspectionViewAction extends InspectionViewActionB } @Override - protected boolean isEnabled(@NotNull InspectionResultsView view) { - return super.isEnabled(view) && getPsiElement(view) != null; + protected boolean isEnabled(@NotNull InspectionResultsView view, AnActionEvent e) { + return super.isEnabled(view, e) && getPsiElement(view) != null; } @Override diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/actions/suppress/SuppressActionWrapper.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/actions/suppress/SuppressActionWrapper.java index d9e12648cb12..baef7ac449a6 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/actions/suppress/SuppressActionWrapper.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/actions/suppress/SuppressActionWrapper.java @@ -37,6 +37,7 @@ import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; +import com.intellij.psi.PsiElement; import com.intellij.util.SequentialModalProgressTask; import com.intellij.util.containers.HashSet; import com.intellij.util.ui.tree.TreeUtil; @@ -127,9 +128,19 @@ public class SuppressActionWrapper extends ActionGroup implements CompactActionG } @Override - protected boolean isEnabled(@NotNull InspectionResultsView view) { - for (SuppressableInspectionTreeNode node : getNodesToSuppress(view)) { + protected boolean isEnabled(@NotNull InspectionResultsView view, AnActionEvent e) { + final Set suppressNodes = getNodesToSuppress(view); + for (SuppressableInspectionTreeNode node : suppressNodes) { if (node.getAvailableSuppressActions().contains(mySuppressAction)) { + String text = mySuppressAction.getFamilyName(); + if (suppressNodes.size() == 1) { + final PsiElement element = node.getSuppressContent().getFirst(); + if (element != null) { + mySuppressAction.isAvailable(view.getProject(), null, element); + text = mySuppressAction.getText(); + } + } + e.getPresentation().setText(text); return true; } }