Mercurial > hg > Members > shoshi > TreeCMSv2
view src/treecms/gui/NodeViewerTree.java @ 8:f96193babac0
changed byte[] to ByteBuffer
added TreeEditor.updateTree(Node,NodeData,Node[]) for node path is known.
added GUIEditor
author | shoshi |
---|---|
date | Thu, 31 Mar 2011 02:08:44 +0900 |
parents | |
children | 17ed97ca9960 |
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); } private 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); } } } }