stories order by name
[nikiroo-utils.git] / src / be / nikiroo / fanfix_swing / gui / browser / SourceTab.java
index 8ac5c1ef96ab4c56b6bd1a98a462d87693bb3891..a86420e57a58ab2c807ff2823cc81bebe3630331 100644 (file)
@@ -1,5 +1,9 @@
 package be.nikiroo.fanfix_swing.gui.browser;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -20,6 +24,7 @@ public class SourceTab extends BasicTab<Map<String, List<String>>> {
 
        @Override
        protected void fillData(Map<String, List<String>> data) {
+               data.clear();
                try {
                        Map<String, List<String>> sourcesGrouped = Instance.getInstance()
                                        .getLibrary().getSourcesGrouped();
@@ -66,7 +71,9 @@ public class SourceTab extends BasicTab<Map<String, List<String>>> {
        protected int loadData(DefaultMutableTreeNode root,
                        Map<String, List<String>> sourcesGrouped, String filter) {
                int count = 0;
-               for (String source : sourcesGrouped.keySet()) {
+               List<String> sources = new ArrayList<String>(sourcesGrouped.keySet());
+               sort(sources);
+               for (String source : sources) {
                        if (checkFilter(filter, source)
                                        || checkFilter(filter, sourcesGrouped.get(source))) {
                                List<String> children = sourcesGrouped.get(source);
@@ -76,6 +83,7 @@ public class SourceTab extends BasicTab<Map<String, List<String>>> {
                                DefaultMutableTreeNode sourceNode = new DefaultMutableTreeNode(
                                                ">" + source + (hasChildren ? "/" : ""));
                                root.add(sourceNode);
+                               sort(children);
                                for (String subSource : children) {
                                        if (checkFilter(filter, source)
                                                        || checkFilter(filter, subSource)) {