1 package jp.sourceforge.stigmata.ui.swing;
7 import javax.swing.tree.DefaultMutableTreeNode;
9 import jp.sourceforge.stigmata.Birthmark;
10 import jp.sourceforge.stigmata.BirthmarkElement;
11 import jp.sourceforge.stigmata.BirthmarkSet;
15 * @author Haruaki TAMADA
18 public class BirthmarkTreeNode extends DefaultMutableTreeNode{
19 private static final long serialVersionUID = -12323457653245L;
20 private Birthmark birthmark;
22 public BirthmarkTreeNode(Birthmark birthmark){
23 super(String.format("%s (%d)", birthmark.getType(), birthmark.getElementCount()));
24 setBirthmark(birthmark);
27 public BirthmarkTreeNode(BirthmarkSet birthmark){
28 super(String.format("%s (%d)", birthmark.getName(), birthmark.getSumOfElementCount()));
29 setBirthmark(birthmark);
32 public Birthmark getBirthmark(){
36 public void setBirthmark(BirthmarkSet holder){
37 addChildBirthmarks(holder, this);
40 public void setBirthmark(Birthmark birthmark){
41 this.birthmark = birthmark;
42 addChildren(birthmark, this);
45 private void addChildren(Birthmark birthmark, DefaultMutableTreeNode parent){
46 DefaultMutableTreeNode node = new DefaultMutableTreeNode(
47 birthmark.getType() + "(" +
48 birthmark.getElementCount() + ")");
51 BirthmarkElement[] elements = birthmark.getElements();
52 for(int i = 0; i < elements.length; i++){
53 node.add(new DefaultMutableTreeNode(elements[i]));
57 private void addChildBirthmarks(BirthmarkSet holder, DefaultMutableTreeNode parent){
58 Birthmark[] birthmarks = holder.getBirthmarks();
59 for(Birthmark birthmark: birthmarks){
60 addChildren(birthmark, parent);