1 33 34 package com.icesoft.icefaces.samples.showcase.components.tree; 35 36 import javax.faces.event.ActionEvent; 37 import javax.faces.event.ValueChangeEvent; 38 import javax.faces.model.SelectItem; 39 import javax.swing.tree.DefaultMutableTreeNode ; 40 import javax.swing.tree.DefaultTreeModel ; 41 import java.util.Enumeration ; 42 43 50 public class TreeBean { 51 52 private DefaultTreeModel model; 54 private DefaultMutableTreeNode rootTreeNode; 55 56 private int labelCount = 0; 58 59 private String selectedNode = ""; 61 62 private NodeUserObject selectedNodeObject = null; 64 65 private SelectItem[] componentList = { 67 new SelectItem(new Integer (1), "outputText"), 68 new SelectItem(new Integer (2), "inputText"), 69 new SelectItem(new Integer (3), "commandButton") 70 }; 71 72 private Integer componentToAdd = new Integer (1); 74 75 80 public SelectItem[] getComponentList() { 81 return componentList; 82 } 83 84 89 public void setComponentList(SelectItem[] componentList) { 90 this.componentList = componentList; 91 } 92 93 98 public Integer getComponentToAdd() { 99 return componentToAdd; 100 } 101 102 107 public void setComponentToAdd(Integer componentToAdd) { 108 this.componentToAdd = componentToAdd; 109 } 110 111 116 public NodeUserObject getSelectedNodeObject() { 117 return selectedNodeObject; 118 } 119 120 125 public void setSelectedNodeObject(NodeUserObject selectedNodeObject) { 126 this.selectedNodeObject = selectedNodeObject; 127 componentToAdd = selectedNodeObject.getComponentType(); 128 } 129 130 137 public void deleteSelectedNode(ActionEvent event) { 138 if (selectedNodeObject != null && !selectedNode.equals("Node 1")) { 141 142 NodeUserObject nodeToDelete = selectedNodeObject; 144 145 if (selectedNodeObject.getWrapper().getParent() != null){ 148 DefaultMutableTreeNode node = 149 (DefaultMutableTreeNode )selectedNodeObject.getWrapper().getParent(); 150 selectedNodeObject = (NodeUserObject)node.getUserObject(); 151 selectedNode = selectedNodeObject.getLabel(); 152 }else{ 153 selectedNode = ""; 154 selectedNodeObject = null; 155 } 156 157 nodeToDelete.deleteNode(event); 159 updateNodeIcon(selectedNodeObject); 161 } 162 163 164 } 165 166 173 public void changedValue(ValueChangeEvent vce) { 174 if(selectedNodeObject != null) { 175 Object nvalue = vce.getNewValue(); 176 if(nvalue instanceof String ) { 177 selectedNodeObject.setValue((String )nvalue); 178 179 } 180 } 181 } 182 183 188 public void componentTypeChanged(ValueChangeEvent vce) { 189 if (selectedNodeObject != null) { 190 Object nvalue = vce.getNewValue(); 191 if (nvalue instanceof Integer ) { 192 selectedNodeObject.setComponentType((Integer ) nvalue); 193 } 194 } 195 } 196 197 202 public void copySelectedNode(ActionEvent event) { 203 if (selectedNodeObject != null) 204 selectedNodeObject.copyNode(); 205 } 206 207 213 public void addSelectedNode(ActionEvent event) { 214 215 DefaultMutableTreeNode treeNode; 217 NodeUserObject node; 218 219 if (selectedNodeObject != null){ 221 node = selectedNodeObject.copyNode(); 223 node.setComponentType(componentToAdd); 225 selectedNodeObject = node; 227 selectedNode = node.getLabel(); 228 selectedNodeObject.setValue(node.generateValues()); 229 } 230 else{ 232 treeNode = new DefaultMutableTreeNode (); 233 node = new NodeUserObject(treeNode, this); 234 node.setComponentType(componentToAdd); 235 treeNode.setUserObject(node); 236 237 selectedNodeObject = node; 238 selectedNode = node.getLabel(); 239 selectedNodeObject.setValue(node.generateValues()); 240 rootTreeNode.add(treeNode); 242 } 243 244 updateNodeIcon(node); 246 } 247 248 253 private void updateNodeIcon(NodeUserObject node){ 254 255 Enumeration children = rootTreeNode.depthFirstEnumeration(); 256 DefaultMutableTreeNode tmpNode; 257 Object tmp; 258 while (children.hasMoreElements()){ 259 tmp = children.nextElement(); 260 if (tmp instanceof DefaultMutableTreeNode ){ 261 tmpNode = (DefaultMutableTreeNode )tmp; 262 if (tmpNode.isLeaf()){ 263 ((NodeUserObject)(tmpNode.getUserObject())).setLeaf(true); 264 } else{ 265 ((NodeUserObject)(tmpNode.getUserObject())).setLeaf(false); 266 } 267 } 268 269 } 270 271 } 272 273 281 public boolean isDeleteDisabled() { 282 return (selectedNode == null || selectedNode.equals("Node 1") || 284 selectedNodeObject == null); 285 } 286 287 294 public boolean isCopyDisabled() { 295 return (selectedNode == null || selectedNodeObject == null); 296 } 297 298 301 public TreeBean() { 302 rootTreeNode = new DefaultMutableTreeNode (); 303 NodeUserObject rootObject = new NodeUserObject(rootTreeNode, this); 304 rootTreeNode.setUserObject(rootObject); 305 306 model = new DefaultTreeModel (rootTreeNode); 307 308 for (int i = 0; i < 3; i++) { 309 DefaultMutableTreeNode branchNode = new DefaultMutableTreeNode (); 310 NodeUserObject branchObject = new NodeUserObject(branchNode, this); 311 branchNode.setUserObject(branchObject); 312 branchObject.setLeaf(true); 313 rootTreeNode.add(branchNode); 314 315 } 316 } 317 318 323 public DefaultTreeModel getModel() { 324 return model; 325 } 326 327 332 public void setModel(DefaultTreeModel model) { 333 this.model = model; 334 } 335 336 341 public String getSelectedNode() { 342 return selectedNode; 343 } 344 345 351 public void setSelectedNode(String selectedNode) { 352 this.selectedNode = selectedNode; 353 } 354 355 360 public int getIncreasedLabelCount() { 361 return ++labelCount; 362 } 363 } 364 | Popular Tags |