From 96327f5d3dbd2c4787be4dd30acc428adb42bdaa Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 1 Jul 2017 04:40:19 +0000 Subject: [PATCH] - Sort puzzles alphabetically in the puzzle selection list box. --- .../forge/screens/home/puzzle/CSubmenuPuzzleSolve.java | 4 ++++ forge-gui/src/main/java/forge/puzzle/Puzzle.java | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuPuzzleSolve.java b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuPuzzleSolve.java index 5d39b4228d3..2c137483832 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuPuzzleSolve.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuPuzzleSolve.java @@ -21,6 +21,8 @@ import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; public enum CSubmenuPuzzleSolve implements ICDoc, IMenuProvider { @@ -50,6 +52,8 @@ public enum CSubmenuPuzzleSolve implements ICDoc, IMenuProvider { private void updateData() { final ArrayList puzzles = PuzzleIO.loadPuzzles(); + Collections.sort(puzzles); + for(Puzzle p : puzzles) { view.getModel().addElement(p); } diff --git a/forge-gui/src/main/java/forge/puzzle/Puzzle.java b/forge-gui/src/main/java/forge/puzzle/Puzzle.java index 6892df90160..c289a63ee19 100644 --- a/forge-gui/src/main/java/forge/puzzle/Puzzle.java +++ b/forge-gui/src/main/java/forge/puzzle/Puzzle.java @@ -16,7 +16,7 @@ import forge.model.FModel; import java.util.List; import java.util.Map; -public class Puzzle extends GameState implements InventoryItem { +public class Puzzle extends GameState implements InventoryItem, Comparable { String name; String goal; String url; @@ -104,4 +104,12 @@ public class Puzzle extends GameState implements InventoryItem { } public String toString() { return name; } + + public int compareTo(Object pzl) throws ClassCastException { + if (!(pzl instanceof Puzzle)) { + throw new ClassCastException("Tried to compare a Puzzle object to a non-Puzzle object."); + } + + return getName().compareTo(((Puzzle)pzl).getName()); + } }