X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix_swing%2Fgui%2Fbrowser%2FSourceTab.java;h=8ac5c1ef96ab4c56b6bd1a98a462d87693bb3891;hb=32ed608959c0dec74660388248831976b97e8c56;hp=6abb46433499bac4fd4fc82b4762c1a30e0b3219;hpb=3cdf3fd8a60d22a592e1cd0634cb108faa1f5f9f;p=fanfix.git diff --git a/src/be/nikiroo/fanfix_swing/gui/browser/SourceTab.java b/src/be/nikiroo/fanfix_swing/gui/browser/SourceTab.java index 6abb464..8ac5c1e 100644 --- a/src/be/nikiroo/fanfix_swing/gui/browser/SourceTab.java +++ b/src/be/nikiroo/fanfix_swing/gui/browser/SourceTab.java @@ -21,7 +21,8 @@ public class SourceTab extends BasicTab>> { @Override protected void fillData(Map> data) { try { - Map> sourcesGrouped = Instance.getInstance().getLibrary().getSourcesGrouped(); + Map> 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>> { @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>> { } @Override - protected int loadData(DefaultMutableTreeNode root, Map> sourcesGrouped, String filter) { + protected int loadData(DefaultMutableTreeNode root, + Map> 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 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)); } } }