summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/cuchaz/enigma/gui/ClassSelector.java43
1 files 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 {
453 453
454 public void reload() { 454 public void reload() {
455 DefaultTreeModel model = (DefaultTreeModel) getModel(); 455 DefaultTreeModel model = (DefaultTreeModel) getModel();
456 model.reload(sort(rootNodes)); 456 model.reload(rootNodes);
457 }
458
459 private DefaultMutableTreeNode sort(DefaultMutableTreeNode node) {
460
461 for (int i = 0; i < node.getChildCount() - 1; i++) {
462 DefaultMutableTreeNode child = (DefaultMutableTreeNode) node.getChildAt(i);
463 if (child == null)
464 continue;
465 String nt = child.toString();
466
467 for (int j = i + 1; j <= node.getChildCount() - 1; j++) {
468 DefaultMutableTreeNode prevNode = (DefaultMutableTreeNode) node.getChildAt(j);
469 if (prevNode == null || prevNode.getUserObject() == null)
470 continue;
471 String np = prevNode.getUserObject().toString();
472
473 if (nt.compareToIgnoreCase(np) > 0) {
474 node.insert(child, j);
475 node.insert(prevNode, i);
476 }
477 }
478 if (child.getChildCount() > 0) {
479 sort(child);
480 }
481 }
482
483 for (int i = 0; i < node.getChildCount() - 1; i++) {
484 DefaultMutableTreeNode child = (DefaultMutableTreeNode) node.getChildAt(i);
485 for (int j = i + 1; j <= node.getChildCount() - 1; j++) {
486 DefaultMutableTreeNode prevNode = (DefaultMutableTreeNode) node.getChildAt(j);
487
488 if (!prevNode.isLeaf() && child.isLeaf()) {
489 node.insert(child, j);
490 node.insert(prevNode, i);
491 }
492 }
493 }
494
495 return node;
496 } 457 }
497 458
498 private int getPlacementIndex(ClassSelectorPackageNode newPackageNode, ClassSelectorClassNode classNode) { 459 private int getPlacementIndex(ClassSelectorPackageNode newPackageNode, ClassSelectorClassNode classNode) {
499 List<ClassSelectorClassNode> classNodes = classNodes(newPackageNode); 460 List<ClassSelectorClassNode> classNodes = classNodes(newPackageNode);
500 classNodes.add(classNode); 461 classNodes.add(classNode);
501 classNodes.sort(Comparator.comparing(ClassSelectorClassNode::toString)); 462 classNodes.sort((a, b) -> comparator.compare(a.getClassEntry(), b.getClassEntry()));
502 for (int i = 0; i < classNodes.size(); i++) 463 for (int i = 0; i < classNodes.size(); i++)
503 if (classNodes.get(i) == classNode) 464 if (classNodes.get(i) == classNode)
504 return i; 465 return i;