1 16 package org.apache.myfaces.custom.tree.taglib; 17 18 import org.apache.myfaces.custom.tree.model.DefaultTreeModel; 19 import org.apache.myfaces.custom.tree.model.TreeModel; 20 import org.apache.myfaces.custom.tree.model.TreePath; 21 import org.apache.myfaces.custom.tree.HtmlTree; 22 import org.apache.myfaces.taglib.UIComponentTagBase; 23 24 import javax.faces.component.UIComponent; 25 import javax.faces.context.FacesContext; 26 import javax.faces.el.ValueBinding; 27 import javax.servlet.jsp.JspException ; 28 29 45 public class TreeTag extends UIComponentTagBase { 46 47 private String value; 48 49 private String var; 50 51 private String iconLine; 52 53 private String iconNoline; 54 55 private String iconChildFirst; 56 57 private String iconChildMiddle; 58 59 private String iconChildLast; 60 61 private String iconNodeOpen; 62 63 private String iconNodeOpenFirst; 64 65 private String iconNodeOpenMiddle; 66 67 private String iconNodeOpenLast; 68 69 private String iconNodeClose; 70 71 private String iconNodeCloseFirst; 72 73 private String iconNodeCloseMiddle; 74 75 private String iconNodeCloseLast; 76 77 private String styleClass; 78 79 private String rowClasses; 80 81 private String columnClasses; 82 83 private String headerClass; 84 85 private String footerClass; 86 87 private String nodeClass; 88 89 private String selectedNodeClass; 90 91 private String iconClass; 92 93 private boolean expandRoot; 94 95 private long expireListeners = HtmlTree.DEFAULT_EXPIRE_LISTENERS; 96 97 public String getComponentType() { 98 return "org.apache.myfaces.HtmlTree"; 99 } 100 101 public String getRendererType() { 102 return "org.apache.myfaces.HtmlTree"; 103 } 104 105 public String getValue() { 106 return value; 107 } 108 109 public void setValue(String newValue) { 110 value = newValue; 111 } 112 113 116 public String getVar() { 117 return var; 118 } 119 120 124 public void setVar(String var) { 125 this.var = var; 126 } 127 128 public String getIconLine() { 129 return iconLine; 130 } 131 132 public void setIconLine(String iconLine) { 133 this.iconLine = iconLine; 134 } 135 136 public String getIconNoline() { 137 return iconNoline; 138 } 139 140 public void setIconNoline(String iconNoline) { 141 this.iconNoline = iconNoline; 142 } 143 144 147 public String getRowClasses() { 148 return rowClasses; 149 } 150 151 155 public void setRowClasses(String rowClasses) { 156 this.rowClasses = rowClasses; 157 } 158 159 162 public String getColumnClasses() { 163 return columnClasses; 164 } 165 166 170 public void setColumnClasses(String columnClasses) { 171 this.columnClasses = columnClasses; 172 } 173 174 public String getIconChildFirst() { 175 return iconChildFirst; 176 } 177 178 public void setIconChildFirst(String iconChildFirst) { 179 this.iconChildFirst = iconChildFirst; 180 } 181 182 public String getIconChildMiddle() { 183 return iconChildMiddle; 184 } 185 186 public void setIconChildMiddle(String iconChildMiddle) { 187 this.iconChildMiddle = iconChildMiddle; 188 } 189 190 public String getIconChildLast() { 191 return iconChildLast; 192 } 193 194 public void setIconChildLast(String iconChildLast) { 195 this.iconChildLast = iconChildLast; 196 } 197 198 public String getIconNodeOpen() { 199 return iconNodeOpen; 200 } 201 202 public void setIconNodeOpen(String iconNodeOpen) { 203 this.iconNodeOpen = iconNodeOpen; 204 } 205 206 public String getIconNodeOpenFirst() { 207 return iconNodeOpenFirst; 208 } 209 210 public void setIconNodeOpenFirst(String iconNodeOpenFirst) { 211 this.iconNodeOpenFirst = iconNodeOpenFirst; 212 } 213 214 public String getIconNodeOpenMiddle() { 215 return iconNodeOpenMiddle; 216 } 217 218 public void setIconNodeOpenMiddle(String iconNodeOpenMiddle) { 219 this.iconNodeOpenMiddle = iconNodeOpenMiddle; 220 } 221 222 public String getIconNodeOpenLast() { 223 return iconNodeOpenLast; 224 } 225 226 public void setIconNodeOpenLast(String iconNodeOpenLast) { 227 this.iconNodeOpenLast = iconNodeOpenLast; 228 } 229 230 public String getIconNodeClose() { 231 return iconNodeClose; 232 } 233 234 public void setIconNodeClose(String iconNodeClose) { 235 this.iconNodeClose = iconNodeClose; 236 } 237 238 public String getIconNodeCloseFirst() { 239 return iconNodeCloseFirst; 240 } 241 242 public void setIconNodeCloseFirst(String iconNodeCloseFirst) { 243 this.iconNodeCloseFirst = iconNodeCloseFirst; 244 } 245 246 public String getIconNodeCloseMiddle() { 247 return iconNodeCloseMiddle; 248 } 249 250 public void setIconNodeCloseMiddle(String iconNodeCloseMiddle) { 251 this.iconNodeCloseMiddle = iconNodeCloseMiddle; 252 } 253 254 public String getIconNodeCloseLast() { 255 return iconNodeCloseLast; 256 } 257 258 public void setIconNodeCloseLast(String iconNodeCloseLast) { 259 this.iconNodeCloseLast = iconNodeCloseLast; 260 } 261 262 public String getStyleClass() { 263 return styleClass; 264 } 265 266 public void setStyleClass(String styleClass) { 267 this.styleClass = styleClass; 268 } 269 270 public String getNodeClass() { 271 return nodeClass; 272 } 273 274 public void setNodeClass(String nodeClass) { 275 this.nodeClass = nodeClass; 276 } 277 278 public String getSelectedNodeClass() { 279 return selectedNodeClass; 280 } 281 282 public void setSelectedNodeClass(String selectedNodeClass) { 283 this.selectedNodeClass = selectedNodeClass; 284 } 285 286 public String getIconClass() { 287 return iconClass; 288 } 289 290 public void setIconClass(String iconClass) { 291 this.iconClass = iconClass; 292 } 293 294 297 public String getFooterClass() { 298 return footerClass; 299 } 300 301 305 public void setFooterClass(String footerClass) { 306 this.footerClass = footerClass; 307 } 308 309 312 public String getHeaderClass() { 313 return headerClass; 314 } 315 316 320 public void setHeaderClass(String headerClass) { 321 this.headerClass = headerClass; 322 } 323 324 public boolean isExpandRoot() { 325 return expandRoot; 326 } 327 328 public void setExpandRoot(boolean expandRoot) { 329 this.expandRoot = expandRoot; 330 } 331 332 public long getExpireListeners() { 333 return expireListeners; 334 } 335 336 public void setExpireListeners(long expireListeners) { 337 this.expireListeners = expireListeners; 338 } 339 340 343 public int doStartTag() throws JspException { 344 FacesContext context = FacesContext.getCurrentInstance(); 345 346 if (value != null) { 347 ValueBinding valueBinding = context.getApplication() 348 .createValueBinding(value); 349 TreeModel treeModel = (TreeModel) (valueBinding.getValue(context)); 350 351 if (treeModel == null) { 352 treeModel = new DefaultTreeModel(); 354 valueBinding.setValue(context, treeModel); 355 } 356 } 357 int answer = super.doStartTag(); 358 HtmlTree tree = (HtmlTree) getComponentInstance(); 359 360 if (getCreated() && expandRoot) { 361 TreeModel model = tree.getModel(context); 363 364 if (model != null) { 365 tree.expandPath(new TreePath(new Object [] { model.getRoot() }), 366 context); 367 } 368 } 369 370 tree.addToModelListeners(); 371 return answer; 372 } 373 374 public void release() { 375 super.release(); 376 value = null; 377 var = null; 378 iconLine = null; 379 iconNoline = null; 380 iconChildFirst = null; 381 iconChildMiddle = null; 382 iconChildLast = null; 383 iconNodeOpen = null; 384 iconNodeOpenFirst = null; 385 iconNodeOpenMiddle = null; 386 iconNodeOpenLast = null; 387 iconNodeClose = null; 388 iconNodeCloseFirst = null; 389 iconNodeCloseMiddle = null; 390 iconNodeCloseLast = null; 391 styleClass = null; 392 rowClasses = null; 393 columnClasses = null; 394 headerClass = null; 395 footerClass = null; 396 nodeClass = null; 397 selectedNodeClass = null; 398 iconClass = null; 399 expandRoot = false; 400 expireListeners = HtmlTree.DEFAULT_EXPIRE_LISTENERS; 401 } 402 403 406 protected void setProperties(UIComponent component) { 407 super.setProperties(component); 408 FacesContext context = FacesContext.getCurrentInstance(); 409 410 if (value != null) { 411 if (isValueReference(value)) { 412 ValueBinding binding = context.getApplication() 413 .createValueBinding(value); 414 component.setValueBinding("model", binding); 415 } 416 } else { 417 ValueBinding binding = component.getValueBinding("model"); 418 if (binding == null) { 419 binding = context.getApplication().createValueBinding( 420 "#{sessionScope.tree}"); 421 } 422 component.setValueBinding("model", binding); 423 } 424 425 setStringProperty(component, "var", var); 426 setStringProperty(component, "iconLine", iconLine); 427 setStringProperty(component, "iconNoline", iconNoline); 428 setStringProperty(component, "iconChildFirst", iconChildFirst); 429 setStringProperty(component, "iconChildMiddle", iconChildMiddle); 430 setStringProperty(component, "iconChildLast", iconChildLast); 431 setStringProperty(component, "iconNodeOpen", iconNodeOpen); 432 setStringProperty(component, "iconNodeOpenFirst", iconNodeOpenFirst); 433 setStringProperty(component, "iconNodeOpenMiddle", iconNodeOpenMiddle); 434 setStringProperty(component, "iconNodeOpenLast", iconNodeOpenLast); 435 setStringProperty(component, "iconNodeClose", iconNodeClose); 436 setStringProperty(component, "iconNodeCloseFirst", iconNodeCloseFirst); 437 setStringProperty(component, "iconNodeCloseMiddle", iconNodeCloseMiddle); 438 setStringProperty(component, "iconNodeCloseLast", iconNodeCloseLast); 439 setStringProperty(component, "styleClass", styleClass); 440 setStringProperty(component, "rowClasses", rowClasses); 441 setStringProperty(component, "columnClasses", columnClasses); 442 setStringProperty(component, "headerClass", headerClass); 443 setStringProperty(component, "footerClass", footerClass); 444 setStringProperty(component, "nodeClass", nodeClass); 445 setStringProperty(component, "selectedNodeClass", selectedNodeClass); 446 setStringProperty(component, "iconClass", iconClass); 447 ((HtmlTree) component).setExpireListeners(expireListeners); 448 } 449 } | Popular Tags |