mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
inspection view: restore state using TreeUtil IDEA-156675
This commit is contained in:
@@ -205,7 +205,7 @@ public class InspectionResultsView extends JPanel implements Disposable, Occuren
|
||||
myTree.repaint();
|
||||
}
|
||||
else {
|
||||
myTree.queueUpdate();
|
||||
InspectionViewPsiTreeChangeAdapter.resetTree(InspectionResultsView.this);
|
||||
}
|
||||
syncRightPanel();
|
||||
}
|
||||
|
||||
+10
-6
@@ -116,12 +116,7 @@ class InspectionViewPsiTreeChangeAdapter extends PsiTreeChangeAdapter {
|
||||
if (needUpdateUI[0]) {
|
||||
myAlarm.cancelAllRequests();
|
||||
myAlarm.addRequest(() -> {
|
||||
final InspectionTree tree = myView.getTree();
|
||||
final TreePath[] selectionPath = tree.getSelectionPaths();
|
||||
final List<TreePath> expandedPaths = TreeUtil.collectExpandedPaths(tree);
|
||||
((DefaultTreeModel)tree.getModel()).reload();
|
||||
TreeUtil.restoreExpandedPaths(tree, expandedPaths);
|
||||
tree.setSelectionPaths(selectionPath);
|
||||
resetTree(myView);
|
||||
}, 100, ModalityState.NON_MODAL);
|
||||
}
|
||||
}
|
||||
@@ -178,6 +173,15 @@ 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<TreePath> 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) {
|
||||
|
||||
Reference in New Issue
Block a user