reformat
[fanfix.git] / src / be / nikiroo / fanfix_swing / gui / browser / SourceTab.java
index 6abb46433499bac4fd4fc82b4762c1a30e0b3219..8ac5c1ef96ab4c56b6bd1a98a462d87693bb3891 100644 (file)
@@ -21,7 +21,8 @@ public class SourceTab extends BasicTab<Map<String, List<String>>> {
        @Override
        protected void fillData(Map<String, List<String>> data) {
                try {
-                       Map<String, List<String>> sourcesGrouped = Instance.getInstance().getLibrary().getSourcesGrouped();
+                       Map<String, List<String>> sourcesGrouped = Instance.getInstance()
+                                       .getLibrary().getSourcesGrouped();
                        for (String group : sourcesGrouped.keySet()) {
                                data.put(group, sourcesGrouped.get(group));
                        }
@@ -38,6 +39,10 @@ public class SourceTab extends BasicTab<Map<String, List<String>>> {
 
        @Override
        protected String keyToDisplay(String key) {
+               if (key.trim().isEmpty()) {
+                       return "[*]"; // Root node
+               }
+
                // Get and remove type
                String type = key.substring(0, 1);
                key = key.substring(1);
@@ -58,20 +63,30 @@ public class SourceTab extends BasicTab<Map<String, List<String>>> {
        }
 
        @Override
-       protected int loadData(DefaultMutableTreeNode root, Map<String, List<String>> sourcesGrouped, String filter) {
+       protected int loadData(DefaultMutableTreeNode root,
+                       Map<String, List<String>> sourcesGrouped, String filter) {
                int count = 0;
                for (String source : sourcesGrouped.keySet()) {
-                       if (checkFilter(filter, source) || checkFilter(filter, sourcesGrouped.get(source))) {
-                               boolean hasChildren = sourcesGrouped.get(source).size() > 1;
-                               DefaultMutableTreeNode sourceNode = new DefaultMutableTreeNode(">" + source + (hasChildren ? "/" : ""));
+                       if (checkFilter(filter, source)
+                                       || checkFilter(filter, sourcesGrouped.get(source))) {
+                               List<String> children = sourcesGrouped.get(source);
+                               boolean hasChildren = (children.size() > 1)
+                                               || (children.size() == 1
+                                                               && !children.get(0).trim().isEmpty());
+                               DefaultMutableTreeNode sourceNode = new DefaultMutableTreeNode(
+                                               ">" + source + (hasChildren ? "/" : ""));
                                root.add(sourceNode);
-                               for (String subSource : sourcesGrouped.get(source)) {
-                                       if (checkFilter(filter, source) || checkFilter(filter, subSource)) {
+                               for (String subSource : children) {
+                                       if (checkFilter(filter, source)
+                                                       || checkFilter(filter, subSource)) {
                                                count = count + 1;
-                                               if (subSource.isEmpty() && sourcesGrouped.get(source).size() > 1) {
-                                                       sourceNode.add(new DefaultMutableTreeNode(" " + source));
+                                               if (subSource.isEmpty()
+                                                               && sourcesGrouped.get(source).size() > 1) {
+                                                       sourceNode.add(
+                                                                       new DefaultMutableTreeNode(" " + source));
                                                } else if (!subSource.isEmpty()) {
-                                                       sourceNode.add(new DefaultMutableTreeNode(" " + source + "/" + subSource));
+                                                       sourceNode.add(new DefaultMutableTreeNode(
+                                                                       " " + source + "/" + subSource));
                                                }
                                        }
                                }