OSDN Git Service

remove Revision tag
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / ui / swing / BirthmarkTreeNode.java
1 package jp.sourceforge.stigmata.ui.swing;
2
3 /*
4  * $Id$
5  */
6
7 import javax.swing.tree.DefaultMutableTreeNode;
8
9 import jp.sourceforge.stigmata.Birthmark;
10 import jp.sourceforge.stigmata.BirthmarkElement;
11 import jp.sourceforge.stigmata.BirthmarkSet;
12
13 /**
14  * 
15  * @author Haruaki TAMADA
16  */
17 public class BirthmarkTreeNode extends DefaultMutableTreeNode{
18     private static final long serialVersionUID = -12323457653245L;
19     private Birthmark birthmark;
20
21     public BirthmarkTreeNode(Birthmark birthmark){
22         super(String.format("%s (%d)", birthmark.getType(), birthmark.getElementCount()));
23         setBirthmark(birthmark);
24     }
25
26     public BirthmarkTreeNode(BirthmarkSet birthmark){
27         super(String.format("%s (%d)", birthmark.getName(), birthmark.getSumOfElementCount()));
28         setBirthmark(birthmark);
29     }
30
31     public Birthmark getBirthmark(){
32         return birthmark;
33     }
34
35     public void setBirthmark(BirthmarkSet holder){
36         addChildBirthmarks(holder, this);
37     }
38
39     public void setBirthmark(Birthmark birthmark){
40         this.birthmark = birthmark;
41         addChildren(birthmark, this);
42     }
43
44     private void addChildren(Birthmark birthmark, DefaultMutableTreeNode parent){
45         DefaultMutableTreeNode node = new DefaultMutableTreeNode(
46             birthmark.getType() + "(" +
47             birthmark.getElementCount() + ")");
48         parent.add(node);
49
50         BirthmarkElement[] elements = birthmark.getElements();
51         for(int i = 0; i < elements.length; i++){
52             node.add(new DefaultMutableTreeNode(elements[i]));
53         }
54     }
55
56     private void addChildBirthmarks(BirthmarkSet holder, DefaultMutableTreeNode parent){
57         Birthmark[] birthmarks = holder.getBirthmarks();
58         for(Birthmark birthmark: birthmarks){
59             addChildren(birthmark, parent);
60         }
61     }
62 }