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