diff options
| author | 2018-11-28 11:55:36 +0100 | |
|---|---|---|
| committer | 2018-11-28 11:55:36 +0100 | |
| commit | 84b74960189778448deecb5cdbac2de69f1e3403 (patch) | |
| tree | 0d052d0d7cf0e609c241f1d11d3f799b1546fd3f /src | |
| parent | add line number coloring, bugfixes (diff) | |
| download | enigma-84b74960189778448deecb5cdbac2de69f1e3403.tar.gz enigma-84b74960189778448deecb5cdbac2de69f1e3403.tar.xz enigma-84b74960189778448deecb5cdbac2de69f1e3403.zip | |
fix class sorting in pane
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/cuchaz/enigma/gui/ClassSelector.java | 43 |
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; |