Mercurial > hg > Members > shoshi > TreeCMSv2
view src/treecms/gui/NodeViewerTree.java @ 9:17ed97ca9960
commit
author | shoshi |
---|---|
date | Mon, 18 Apr 2011 01:07:27 +0900 |
parents | f96193babac0 |
children |
line wrap: on
line source
package treecms.gui; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import treecms.api.Node; import treecms.api.TreeEditor; public class NodeViewerTree extends JTree { private static final long serialVersionUID = 8257838201307216301L; public NodeViewerTree(Node _node) { super(new NVTreeModel(_node)); } public void addChildToSelectedNode(Node _child) { DefaultMutableTreeNode node = (DefaultMutableTreeNode)this.getLastSelectedPathComponent(); if(node == null){ return; } DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(); newNode.setUserObject(_child); node.add(newNode); } static class NVTreeModel extends DefaultTreeModel { public NVTreeModel(Node _node) { super(new DefaultMutableTreeNode()); setTree(_node,false); } public void setTree(Node _node,boolean _reload) { DefaultMutableTreeNode root = (DefaultMutableTreeNode)getRoot(); root.removeAllChildren(); root.setUserObject(_node); for(Node child : _node.children()){ treewalk(child,root); } if(_reload){ reload(); } } private void treewalk(Node _node,DefaultMutableTreeNode _treeNode) { DefaultMutableTreeNode treeChild = new DefaultMutableTreeNode(); treeChild.setUserObject(_node); _treeNode.add(treeChild); for(Node child : _node.children()){ treewalk(child,treeChild); } } } }