1 18 package org.apache.beehive.netui.tags.tree; 19 20 import org.apache.beehive.netui.util.logging.Logger; 21 22 import javax.servlet.ServletRequest ; 23 import javax.servlet.http.HttpServletRequest ; 24 import javax.servlet.http.HttpServletResponse ; 25 26 27 30 public class TreeHelpers 31 { 32 private static final Logger logger = Logger.getInstance(TreeHelpers.class); 33 34 40 public static void processTreeRequest(String treeId, TreeElement treeRoot, HttpServletRequest request, HttpServletResponse response) 41 { 42 assert(treeId != null) : "parameter treeId must not be null."; 43 assert(treeRoot != null) : "parameter treeRoot must not be null."; 44 assert(request != null) : "paramater request must not be null."; 45 46 String selectNode = request.getParameter(TreeElement.SELECTED_NODE); 50 if (selectNode != null) { 51 if (treeRoot instanceof ITreeRootElement) { 52 ITreeRootElement root = (ITreeRootElement) treeRoot; 53 root.changeSelected(selectNode, request); 54 } 55 else { 56 setSelected(treeRoot, selectNode, request); 57 } 58 } 59 60 String expandNode = null; 62 63 expandNode = request.getParameter(TreeElement.EXPAND_NODE); 65 66 if (expandNode != null) { 68 TreeElement n = treeRoot.findNode(expandNode); 69 if (n != null) { 70 n.onExpand(request, response); 71 n.setExpanded(!n.isExpanded()); 72 } 73 } 74 } 75 76 82 protected static void setSelected(TreeElement node, String selected, ServletRequest request) 83 { 84 assert(node != null) : "parameter 'node' must not be null"; 85 assert(selected != null) : "parameter 'selected' must not be null"; 86 assert(request != null) : "parameter 'requested' must not be null"; 87 88 if (node.getName().equals(selected)) { 89 node.onSelect(request); 90 node.setSelected(true); 91 } 92 else { 93 if (node.isSelected()) { 94 node.onSelect(request); 95 node.setSelected(false); 96 } 97 } 98 99 TreeElement children[] = node.getChildren(); 100 assert(children != null); 101 for (int i = 0; i < children.length; i++) { 102 setSelected(children[i], selected, request); 103 } 104 } 105 106 118 public static TreeElement findSelected(TreeElement root) 119 { 120 assert (root != null) : "parameter 'root' must not be null"; 121 if (root instanceof ITreeRootElement) { 122 return ((ITreeRootElement) root).getSelectedNode(); 123 } 124 return recursiveFindSelected(root); 125 } 126 127 132 private static TreeElement recursiveFindSelected(TreeElement elem) 133 { 134 assert(elem != null); 135 136 if (elem.isSelected()) 137 return elem; 138 139 TreeElement children[] = elem.getChildren(); 140 assert(children != null); 141 for (int i = 0; i < children.length; i++) { 142 TreeElement e = recursiveFindSelected(children[i]); 143 if (e != null) 144 return e; 145 } 146 return null; 147 } 148 149 159 public static TreeElement changeSelected(TreeElement root, TreeElement selectedNode, String selectNode, ServletRequest request) 160 { 161 assert(root != null) : "parameter 'root' must not be null"; 162 assert(selectNode != null) : "parameter 'selectNode' must not be null"; 163 assert(request != null) : "parameter 'request' must not be null"; 164 165 TreeElement n = root.findNode(selectNode); 168 if (n == null) { 169 logger.warn("The tree element '" + selectNode + "' was not found. Selection failed"); 170 return null; 171 } 172 173 if (selectedNode != null) { 175 selectedNode.onSelect(request); 176 selectedNode.setSelected(false); 177 } 178 179 n.onSelect(request); 181 n.setSelected(true); 182 return n; 183 } 184 185 } 186 | Popular Tags |