746f268928f07ae15ddb7287c26bf1a5b11b282e
[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.data.MetaData;
10
11 public class TagsTab extends BasicTab<List<String>> {
12 public TagsTab(int index, String listenerCommand) {
13 super(index, listenerCommand);
14 }
15
16 @Override
17 protected List<String> createEmptyData() {
18 return new ArrayList<String>();
19 }
20
21 @Override
22 protected void fillData(List<String> data) {
23 try {
24 List<MetaData> metas = Instance.getInstance().getLibrary().getList();
25 for (MetaData meta : metas) {
26 List<String> tags = meta.getTags();
27 if (tags != null) {
28 for (String tag : tags) {
29 if (!data.contains(tag)) {
30 data.add(tag);
31 }
32 }
33 }
34 }
35 } catch (Exception e) {
36 // TODO
37 e.printStackTrace();
38 }
39 }
40
41 @Override
42 protected String keyToElement(String key) {
43 return key;
44 }
45
46 @Override
47 protected String keyToDisplay(String key) {
48 return key;
49 }
50
51 @Override
52 protected int loadData(DefaultMutableTreeNode root, List<String> tags, String filter) {
53 for (String tag : tags) {
54 if (checkFilter(filter, tag)) {
55 DefaultMutableTreeNode sourceNode = new DefaultMutableTreeNode(tag);
56 root.add(sourceNode);
57 }
58 }
59
60 return tags.size();
61 }
62 }