Commit | Line | Data |
---|---|---|
3cdf3fd8 NR |
1 | package be.nikiroo.fanfix_swing.gui.browser; |
2 | ||
3 | import java.util.ArrayList; | |
62c7e07e | 4 | import java.util.Collections; |
3cdf3fd8 NR |
5 | import java.util.List; |
6 | ||
7 | import javax.swing.tree.DefaultMutableTreeNode; | |
8 | ||
9 | import be.nikiroo.fanfix.Instance; | |
e915ed77 | 10 | import be.nikiroo.fanfix.bundles.StringIdGui; |
3cdf3fd8 | 11 | import be.nikiroo.fanfix.data.MetaData; |
e915ed77 | 12 | import be.nikiroo.fanfix.library.MetaResultList; |
3cdf3fd8 NR |
13 | |
14 | public 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 | } |