OSDN Git Service

ecf03a9df9766fc20559f0be6278971eae093707
[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  * @version $Revision$ 
21  */
22 public class BirthmarkTree extends JTree{
23     private static final long serialVersionUID = 68345692177534765L;
24
25     private List<BirthmarkSet> birthmarks = new ArrayList<BirthmarkSet>();
26     private DefaultTreeModel model;
27     private DefaultMutableTreeNode root;
28
29     public BirthmarkTree(StigmataFrame frame){
30         super(new DefaultTreeModel(new DefaultMutableTreeNode(
31             frame.getMessages().get("birthmarktree.root.label"), true)
32         ));
33         model = (DefaultTreeModel)getModel();
34         root = (DefaultMutableTreeNode)model.getRoot();
35     }
36
37     public BirthmarkTree(StigmataFrame frame, BirthmarkSet[] birthmarks){
38         this(frame);
39         setBirthmarks(birthmarks);
40     }
41
42     public synchronized BirthmarkSet[] getBirthmarkHolders(){
43         return birthmarks.toArray(new BirthmarkSet[birthmarks.size()]);
44     }
45
46     public void setBirthmarks(BirthmarkSet[] sets){
47         birthmarks.clear();
48
49         for(BirthmarkSet set: sets){
50             birthmarks.add(set);
51             root.add(new BirthmarkTreeNode(set));
52         }
53         expandRow(0);
54     }
55 }