[unknown] for unknown tag/author
[fanfix.git] / src / be / nikiroo / fanfix_swing / gui / browser / TagsTab.java
1 package be.nikiroo.fanfix_swing.gui.browser;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import javax.swing.tree.DefaultMutableTreeNode;
7
8 import be.nikiroo.fanfix.Instance;
9 import be.nikiroo.fanfix.bundles.StringIdGui;
10 import be.nikiroo.fanfix.data.MetaData;
11 import be.nikiroo.fanfix.library.MetaResultList;
12
13 public class TagsTab extends BasicTab<List<String>> {
14 public TagsTab(int index, String listenerCommand) {
15 super(index, listenerCommand);
16 }
17
18 @Override
19 protected List<String> createEmptyData() {
20 return new ArrayList<String>();
21 }
22
23 @Override
24 protected void fillData(List<String> data) {
25 try {
26 MetaResultList metas = Instance.getInstance().getLibrary().getList();
27 // TODO: getTagList, getAuthorList... ?
28 for (MetaData meta : metas.getMetas()) {
29 List<String> tags = meta.getTags();
30 if (tags != null) {
31 for (String tag : tags) {
32 if (!data.contains(tag)) {
33 data.add(tag);
34 }
35 }
36 }
37 }
38 } catch (Exception e) {
39 // TODO
40 e.printStackTrace();
41 }
42 }
43
44 @Override
45 protected String keyToElement(String key) {
46 return key;
47 }
48
49 @Override
50 protected String keyToDisplay(String key) {
51 if (key.trim().isEmpty()) {
52 // TODO: new TAG_UNKNOWN needed
53 key = Instance.getInstance().getTransGui().getString(StringIdGui.MENU_AUTHORS_UNKNOWN);
54 }
55
56 return key;
57 }
58
59 @Override
60 protected int loadData(DefaultMutableTreeNode root, List<String> tags, String filter) {
61 for (String tag : tags) {
62 if (checkFilter(filter, tag)) {
63 DefaultMutableTreeNode sourceNode = new DefaultMutableTreeNode(tag);
64 root.add(sourceNode);
65 }
66 }
67
68 return tags.size();
69 }
70 }