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
17 public class BirthmarkTreeNode extends DefaultMutableTreeNode{
18 private static final long serialVersionUID = -12323457653245L;
19 private Birthmark birthmark;
21 public BirthmarkTreeNode(Birthmark birthmark){
22 super(String.format("%s (%d)", birthmark.getType(), birthmark.getElementCount()));
23 setBirthmark(birthmark);
26 public BirthmarkTreeNode(BirthmarkSet birthmark){
27 super(String.format("%s (%d)", birthmark.getName(), birthmark.getSumOfElementCount()));
28 setBirthmark(birthmark);
31 public Birthmark getBirthmark(){
35 public void setBirthmark(BirthmarkSet holder){
36 addChildBirthmarks(holder, this);
39 public void setBirthmark(Birthmark birthmark){
40 this.birthmark = birthmark;
41 addChildren(birthmark, this);
44 private void addChildren(Birthmark birthmark, DefaultMutableTreeNode parent){
45 DefaultMutableTreeNode node = new DefaultMutableTreeNode(
46 birthmark.getType() + "(" +
47 birthmark.getElementCount() + ")");
50 BirthmarkElement[] elements = birthmark.getElements();
51 for(int i = 0; i < elements.length; i++){
52 node.add(new DefaultMutableTreeNode(elements[i]));
56 private void addChildBirthmarks(BirthmarkSet holder, DefaultMutableTreeNode parent){
57 Birthmark[] birthmarks = holder.getBirthmarks();
58 for(Birthmark birthmark: birthmarks){
59 addChildren(birthmark, parent);