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 6a6ef36a6c59..4297b47d24e7 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java @@ -80,6 +80,7 @@ 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.TreeNode; import javax.swing.tree.TreePath; import java.awt.*; @@ -211,7 +212,7 @@ public class InspectionResultsView extends JPanel implements Disposable, Occuren myTree.repaint(); } else { - InspectionViewPsiTreeChangeAdapter.resetTree(InspectionResultsView.this); + resetTree(); } syncRightPanel(); } @@ -990,6 +991,19 @@ public class InspectionResultsView extends JPanel implements Disposable, Occuren return null; } + public void resetTree() { + try { + myTree.setQueueUpdate(true); + final TreePath[] selectionPath = myTree.getSelectionPaths(); + final List expandedPaths = TreeUtil.collectExpandedPaths(myTree); + ((DefaultTreeModel)myTree.getModel()).reload(); + TreeUtil.restoreExpandedPaths(myTree, expandedPaths); + myTree.setSelectionPaths(selectionPath); + } finally { + myTree.setQueueUpdate(false); + } + } + @Nullable private Navigatable getSelectedNavigatable(final CommonProblemDescriptor descriptor) { return getSelectedNavigatable(descriptor, diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionViewPsiTreeChangeAdapter.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionViewPsiTreeChangeAdapter.java index 08c36d17124e..741420fe4ecb 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionViewPsiTreeChangeAdapter.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionViewPsiTreeChangeAdapter.java @@ -111,7 +111,7 @@ class InspectionViewPsiTreeChangeAdapter extends PsiTreeChangeAdapter { if (needUpdateUI[0]) { myAlarm.cancelAllRequests(); myAlarm.addRequest(() -> { - resetTree(myView); + myView.resetTree(); }, 100, ModalityState.NON_MODAL); } } @@ -168,15 +168,6 @@ class InspectionViewPsiTreeChangeAdapter extends PsiTreeChangeAdapter { processEventFileOrDir(event, false); } - public static void resetTree(@NotNull InspectionResultsView view) { - final InspectionTree tree = view.getTree(); - final TreePath[] selectionPath = tree.getSelectionPaths(); - final List expandedPaths = TreeUtil.collectExpandedPaths(tree); - ((DefaultTreeModel)tree.getModel()).reload(); - TreeUtil.restoreExpandedPaths(tree, expandedPaths); - tree.setSelectionPaths(selectionPath); - } - private void processEventFileOrDir(@NotNull PsiTreeChangeEvent event, boolean eagerEvaluateFiles) { final PsiFile file = event.getFile(); if (file != null) {