001package polaris.sdk.ui.controls;
002import polaris.sdk.ui.*;
003
004import java.util.*;
005public class TreeNode extends Widget {
006 private boolean expanded=true;private Object data;
007 public TreeNode(){this("Node");}public TreeNode(String s){super(s);h=30;focusable=true;}
008 public TreeNode node(TreeNode n){add(n);return this;}public TreeNode data(Object object){data=object;return this;}public Object data(){return data;}
009 public boolean expanded(){return expanded;}public TreeNode expanded(boolean b){expanded=b;return this;}
010 public java.util.List<TreeNode> nodes(){java.util.List<TreeNode> result=new ArrayList<TreeNode>();for(Widget w:children)if(w instanceof TreeNode)result.add((TreeNode)w);return result;}
011 @Override public void activate(){expanded=!expanded;changed();super.activate();}
012 @Override protected void layoutChildren(){float top=32;for(Widget c:children){c.visible(expanded);c.bounds(18,top,w-18,c.height());top+=c.height()+2;}}
013 @Override protected void paint(Painter p){p.text(children.isEmpty()?"·":expanded?"▾":"▸",ax+5,ay+7,14,theme().accent);p.text(text,ax+27,ay+7,14,ink());}
014}