From 84b74960189778448deecb5cdbac2de69f1e3403 Mon Sep 17 00:00:00 2001 From: asie Date: Wed, 28 Nov 2018 11:55:36 +0100 Subject: fix class sorting in pane --- src/main/java/cuchaz/enigma/gui/ClassSelector.java | 43 +--------------------- 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/src/main/java/cuchaz/enigma/gui/ClassSelector.java b/src/main/java/cuchaz/enigma/gui/ClassSelector.java index 974a7b2b..8863386d 100644 --- a/src/main/java/cuchaz/enigma/gui/ClassSelector.java +++ b/src/main/java/cuchaz/enigma/gui/ClassSelector.java @@ -453,52 +453,13 @@ public class ClassSelector extends JTree { public void reload() { DefaultTreeModel model = (DefaultTreeModel) getModel(); - model.reload(sort(rootNodes)); - } - - private DefaultMutableTreeNode sort(DefaultMutableTreeNode node) { - - for (int i = 0; i < node.getChildCount() - 1; i++) { - DefaultMutableTreeNode child = (DefaultMutableTreeNode) node.getChildAt(i); - if (child == null) - continue; - String nt = child.toString(); - - for (int j = i + 1; j <= node.getChildCount() - 1; j++) { - DefaultMutableTreeNode prevNode = (DefaultMutableTreeNode) node.getChildAt(j); - if (prevNode == null || prevNode.getUserObject() == null) - continue; - String np = prevNode.getUserObject().toString(); - - if (nt.compareToIgnoreCase(np) > 0) { - node.insert(child, j); - node.insert(prevNode, i); - } - } - if (child.getChildCount() > 0) { - sort(child); - } - } - - for (int i = 0; i < node.getChildCount() - 1; i++) { - DefaultMutableTreeNode child = (DefaultMutableTreeNode) node.getChildAt(i); - for (int j = i + 1; j <= node.getChildCount() - 1; j++) { - DefaultMutableTreeNode prevNode = (DefaultMutableTreeNode) node.getChildAt(j); - - if (!prevNode.isLeaf() && child.isLeaf()) { - node.insert(child, j); - node.insert(prevNode, i); - } - } - } - - return node; + model.reload(rootNodes); } private int getPlacementIndex(ClassSelectorPackageNode newPackageNode, ClassSelectorClassNode classNode) { List classNodes = classNodes(newPackageNode); classNodes.add(classNode); - classNodes.sort(Comparator.comparing(ClassSelectorClassNode::toString)); + classNodes.sort((a, b) -> comparator.compare(a.getClassEntry(), b.getClassEntry())); for (int i = 0; i < classNodes.size(); i++) if (classNodes.get(i) == classNode) return i; -- cgit v1.2.3