OSDN Git Service

258d8f7da159e4a2a154299b28080e4af09d11b5
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / ui / swing / BirthmarkTree.java
1 package jp.sourceforge.stigmata.ui.swing;
2
3 /*
4  * $Id$
5  */
6
7 import java.util.ArrayList;
8 import java.util.List;
9
10 import javax.swing.JTree;
11 import javax.swing.tree.DefaultMutableTreeNode;
12 import javax.swing.tree.DefaultTreeModel;
13
14 import jp.sourceforge.stigmata.BirthmarkSet;
15
16 /**
17  * 
18  * 
19  * @author Haruaki TAMADA
20  */
21 public class BirthmarkTree extends JTree{
22     private static final long serialVersionUID = 68345692177534765L;
23
24     private List<BirthmarkSet> birthmarks = new ArrayList<BirthmarkSet>();
25     private DefaultTreeModel model;
26     private DefaultMutableTreeNode root;
27
28     public BirthmarkTree(StigmataFrame frame){
29         super(new DefaultTreeModel(new DefaultMutableTreeNode(
30             frame.getMessages().get("birthmarktree.root.label"), true)
31         ));
32         model = (DefaultTreeModel)getModel();
33         root = (DefaultMutableTreeNode)model.getRoot();
34     }
35
36     public BirthmarkTree(StigmataFrame frame, BirthmarkSet[] birthmarks){
37         this(frame);
38         setBirthmarks(birthmarks);
39     }
40
41     public synchronized BirthmarkSet[] getBirthmarkHolders(){
42         return birthmarks.toArray(new BirthmarkSet[birthmarks.size()]);
43     }
44
45     public void setBirthmarks(BirthmarkSet[] sets){
46         birthmarks.clear();
47
48         for(BirthmarkSet set: sets){
49             birthmarks.add(set);
50             root.add(new BirthmarkTreeNode(set));
51         }
52         expandRow(0);
53     }
54 }