1 package org.sapia.regis.gui.model; 2 3 import java.awt.Component ; 4 5 import javax.swing.JTree ; 6 import javax.swing.tree.DefaultMutableTreeNode ; 7 import javax.swing.tree.DefaultTreeCellRenderer ; 8 import javax.swing.tree.DefaultTreeModel ; 9 10 import org.sapia.regis.Node; 11 import org.sapia.regis.gui.GlobalContext; 12 import org.sapia.regis.gui.GuiConsts; 13 14 public class ModelUtils implements GuiConsts{ 15 16 17 public static DefaultMutableTreeNode buildTreeNodeFrom(Node node){ 18 DefaultMutableTreeNode treeNode = new DefaultMutableTreeNode (); 19 treeNode.setAllowsChildren(true); 20 treeNode.setUserObject(new NodeModel(node)); 21 return treeNode; 22 } 23 24 public static JTree buildTree(){ 25 return buildTreeFrom(GlobalContext.getInstance().getRegistry().getRoot()); 26 } 27 28 public static JTree buildTreeFrom(Node node){ 29 DefaultMutableTreeNode rootNode = buildTreeNodeFrom(node); 30 JTree tree = new JTree (new DefaultTreeModel (rootNode)); 31 GlobalContext.getInstance().getRenderContext().getEnv().put(TREE, tree, WIDGETS_SCOPE); 32 tree.putClientProperty("JTree.lineStyle", "None"); 33 TreeManager manager = new TreeManager(); 34 tree.setCellRenderer(new DefaulTreeCellRendererEx()); 35 tree.addTreeWillExpandListener(manager); 36 tree.addTreeSelectionListener(manager); 37 return tree; 38 } 39 40 public static class DefaulTreeCellRendererEx extends DefaultTreeCellRenderer { 41 public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { 42 return super.getTreeCellRendererComponent(tree, value, sel, expanded, false, 43 row, hasFocus); 44 } 45 46 } 47 } 48 | Popular Tags |