From c470c1e137a8f37ee4cf4b53d6a2d8943ee84223 Mon Sep 17 00:00:00 2001 From: YanisBft Date: Wed, 30 Aug 2023 16:47:45 +0200 Subject: Fix collapse all in deobf panel (#527) --- enigma-swing/src/main/java/cuchaz/enigma/gui/ClassSelector.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'enigma-swing/src/main/java/cuchaz/enigma/gui') diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/ClassSelector.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/ClassSelector.java index 4b9fa59..5f53f4d 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/ClassSelector.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/ClassSelector.java @@ -265,7 +265,12 @@ public class ClassSelector extends JTree { } public void collapseAll() { - for (DefaultMutableTreeNode packageNode : packageManager.getPackageNodes()) { + // sort the package nodes by depth, so we collapse the deepest nodes first + List packageNodes = new ArrayList<>(packageManager.getPackageNodes()); + packageNodes.sort(Comparator.comparingInt(DefaultMutableTreeNode::getDepth)); + + // collapse the nodes + for (DefaultMutableTreeNode packageNode : packageNodes) { collapsePath(new TreePath(packageNode.getPath())); } } -- cgit v1.2.3