fix filter re-add data problem
[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;
4import java.util.List;
5
6import javax.swing.tree.DefaultMutableTreeNode;
7
8import be.nikiroo.fanfix.Instance;
e915ed77 9import be.nikiroo.fanfix.bundles.StringIdGui;
3cdf3fd8 10import be.nikiroo.fanfix.data.MetaData;
e915ed77 11import be.nikiroo.fanfix.library.MetaResultList;
3cdf3fd8
NR
12
13public 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) {
b63e7e0b 25 data.clear();
3cdf3fd8 26 try {
32ed6089
NR
27 MetaResultList metas = Instance.getInstance().getLibrary()
28 .getList();
e915ed77
NR
29 // TODO: getTagList, getAuthorList... ?
30 for (MetaData meta : metas.getMetas()) {
3cdf3fd8
NR
31 List<String> tags = meta.getTags();
32 if (tags != null) {
33 for (String tag : tags) {
34 if (!data.contains(tag)) {
35 data.add(tag);
36 }
37 }
38 }
39 }
40 } catch (Exception e) {
41 // TODO
42 e.printStackTrace();
43 }
44 }
45
46 @Override
47 protected String keyToElement(String key) {
48 return key;
49 }
50
51 @Override
52 protected String keyToDisplay(String key) {
e915ed77
NR
53 if (key.trim().isEmpty()) {
54 // TODO: new TAG_UNKNOWN needed
32ed6089
NR
55 key = Instance.getInstance().getTransGui()
56 .getString(StringIdGui.MENU_AUTHORS_UNKNOWN);
e915ed77
NR
57 }
58
3cdf3fd8
NR
59 return key;
60 }
61
62 @Override
32ed6089
NR
63 protected int loadData(DefaultMutableTreeNode root, List<String> tags,
64 String filter) {
3cdf3fd8
NR
65 for (String tag : tags) {
66 if (checkFilter(filter, tag)) {
32ed6089
NR
67 DefaultMutableTreeNode sourceNode = new DefaultMutableTreeNode(
68 tag);
3cdf3fd8
NR
69 root.add(sourceNode);
70 }
71 }
72
73 return tags.size();
74 }
75}