1 30 package com.genimen.djeneric.tools.console.nodes; 31 32 import java.net.URL ; 33 34 import javax.swing.ImageIcon ; 35 import javax.swing.JTree ; 36 import javax.swing.RepaintManager ; 37 import javax.swing.tree.DefaultMutableTreeNode ; 38 import javax.swing.tree.DefaultTreeModel ; 39 40 public abstract class CustomTreeNode extends DefaultMutableTreeNode 41 { 42 public boolean _alreadyLoaded = false; 43 protected JTree _tree; 44 protected DefaultTreeModel _treeModel; 45 46 private CustomTreeNode _parent = null; 47 48 public CustomTreeNode() 49 { 50 _tree = null; 51 _treeModel = null; 52 } 53 54 public CustomTreeNode(JTree theTree, DefaultTreeModel theModel) 55 { 56 _tree = theTree; 57 _treeModel = theModel; 58 } 59 60 public JTree getTree() 61 { 62 return _tree; 63 } 64 65 public DefaultTreeModel getModel() 66 { 67 return _treeModel; 68 } 69 70 public ImageIcon getImageIcon() 71 { 72 return (getImageIcon("images/root.gif")); 73 } 74 75 public CustomTreeNode getParentCustomTreeNode() 76 { 77 return _parent; 78 } 79 80 public void insertAsChild(CustomTreeNode node) 81 { 82 _treeModel.insertNodeInto(node, this, getChildCount()); 83 node._parent = this; 84 } 85 86 public void insertAsFolder(CustomTreeNode node) 87 { 88 _treeModel.insertNodeInto(node, this, getChildCount()); 89 _treeModel.insertNodeInto(new DefaultMutableTreeNode (), node, 0); 90 node._parent = this; 91 } 92 93 public void insertAsSibling(CustomTreeNode node) 94 { 95 _treeModel.insertNodeInto(node, parent, parent.getChildCount()); 96 node._parent = _parent; 97 } 98 99 public void removeFromTree() 100 { 101 _treeModel.removeNodeFromParent(this); 102 } 103 104 public String toString() 105 { 106 return "New CustomTreeNode"; 107 } 108 109 public String getDetailDescription() 110 { 111 return ""; 112 } 113 114 public void expandNode() throws Exception 115 { 116 } 117 118 public void reload() throws Exception 119 { 120 _alreadyLoaded = false; 121 expandNode(); 122 } 123 124 public void repaintTree() 125 { 126 RepaintManager rm = RepaintManager.currentManager(_tree); 127 if (rm != null) 128 { 129 rm.validateInvalidComponents(); 130 rm.paintDirtyRegions(); 131 } 132 } 133 134 public void reloadParent() throws Exception 135 { 136 CustomTreeNode p = getParentCustomTreeNode(); 137 if (p != null) p.reload(); 138 } 139 140 public static ImageIcon getImageIcon(String fileName) 141 { 142 URL url = CustomTreeNode.class.getResource(fileName); 143 if (url != null) return new ImageIcon (url); 144 else return new ImageIcon (""); 145 } 147 148 } | Popular Tags |