From 3d4ddffb66c1ec7291dda0f0ca03a8da82b00100 Mon Sep 17 00:00:00 2001 From: Dmitry Batkovich Date: Tue, 12 Jul 2016 10:49:03 +0300 Subject: [PATCH] inspection view: navigate to common parent if tree nodes are excluded && FILTER_RESOLVED_ITEMS == true IDEA-156675 --- .../ui/InspectionResultsView.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java index 7b2bd44c94a7..418dae912378 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java @@ -79,7 +79,6 @@ import javax.swing.*; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; import java.awt.*; import java.awt.event.InputEvent; @@ -177,15 +176,6 @@ public class InspectionResultsView extends JPanel implements Disposable, Occuren @Override public void excludeNode(@NotNull InspectionTreeNode node) { node.excludeElement(myExcludedInspectionTreeNodesManager); - if (myGlobalInspectionContext.getUIOptions().FILTER_RESOLVED_ITEMS) { - synchronized (myTreeStructureUpdateLock) { - InspectionTreeNode parent = (InspectionTreeNode)node.getParent(); - if (parent != null) { - parent.remove(node); - ((DefaultTreeModel)myTree.getModel()).reload(parent); - } - } - } } @Override @@ -200,10 +190,21 @@ public class InspectionResultsView extends JPanel implements Disposable, Occuren @Override public void onDone(boolean isExcludeAction) { - if (!isExcludeAction || !myGlobalInspectionContext.getUIOptions().FILTER_RESOLVED_ITEMS) { + if (isExcludeAction) { + if (myGlobalInspectionContext.getUIOptions().FILTER_RESOLVED_ITEMS) { + synchronized (myTreeStructureUpdateLock) { + final TreePath[] selected = myTree.getSelectionPaths(); + if (selected != null) { + final TreePath commonParent = TreeUtil.findCommonPath(selected); + TreeUtil.removeSelected(myTree); + TreeUtil.selectPath(myTree, commonParent); + } + } + } myTree.revalidate(); myTree.repaint(); - } else { + } + else { myTree.queueUpdate(); } syncRightPanel();