1 16 package org.apache.cocoon.faces.taglib.html; 17 18 import org.apache.cocoon.faces.FacesUtils; 19 import org.apache.cocoon.faces.taglib.UIComponentTag; 20 import org.apache.commons.lang.BooleanUtils; 21 22 import javax.faces.FacesException; 23 import javax.faces.component.UIComponent; 24 import javax.faces.component.UISelectBoolean; 25 import javax.faces.context.FacesContext; 26 import javax.faces.el.MethodBinding; 27 import javax.faces.event.ValueChangeEvent; 28 29 32 public class SelectBooleanCheckboxTag extends UIComponentTag { 33 34 private String converter; 35 private String immediate; 36 private String required; 37 private String validator; 38 private String value; 39 private String valueChangeListener; 40 private String accesskey; 41 private String dir; 42 private String disabled; 43 private String lang; 44 private String onblur; 45 private String onchange; 46 private String onclick; 47 private String ondblclick; 48 private String onfocus; 49 private String onkeydown; 50 private String onkeypress; 51 private String onkeyup; 52 private String onmousedown; 53 private String onmousemove; 54 private String onmouseout; 55 private String onmouseover; 56 private String onmouseup; 57 private String onselect; 58 private String readonly; 59 private String style; 60 private String styleClass; 61 private String tabindex; 62 private String title; 63 64 65 public void setConverter(String converter) { 66 this.converter = converter; 67 } 68 69 public void setImmediate(String immediate) { 70 this.immediate = immediate; 71 } 72 73 public void setRequired(String required) { 74 this.required = required; 75 } 76 77 public void setValidator(String validator) { 78 this.validator = validator; 79 } 80 81 public void setValue(String value) { 82 this.value = value; 83 } 84 85 public void setValueChangeListener(String valueChangeListener) { 86 this.valueChangeListener = valueChangeListener; 87 } 88 89 public void setAccesskey(String accesskey) { 90 this.accesskey = accesskey; 91 } 92 93 public void setDir(String dir) { 94 this.dir = dir; 95 } 96 97 public void setDisabled(String disabled) { 98 this.disabled = disabled; 99 } 100 101 public void setLang(String lang) { 102 this.lang = lang; 103 } 104 105 public void setOnblur(String onblur) { 106 this.onblur = onblur; 107 } 108 109 public void setOnchange(String onchange) { 110 this.onchange = onchange; 111 } 112 113 public void setOnclick(String onclick) { 114 this.onclick = onclick; 115 } 116 117 public void setOndblclick(String ondblclick) { 118 this.ondblclick = ondblclick; 119 } 120 121 public void setOnfocus(String onfocus) { 122 this.onfocus = onfocus; 123 } 124 125 public void setOnkeydown(String onkeydown) { 126 this.onkeydown = onkeydown; 127 } 128 129 public void setOnkeypress(String onkeypress) { 130 this.onkeypress = onkeypress; 131 } 132 133 public void setOnkeyup(String onkeyup) { 134 this.onkeyup = onkeyup; 135 } 136 137 public void setOnmousedown(String onmousedown) { 138 this.onmousedown = onmousedown; 139 } 140 141 public void setOnmousemove(String onmousemove) { 142 this.onmousemove = onmousemove; 143 } 144 145 public void setOnmouseout(String onmouseout) { 146 this.onmouseout = onmouseout; 147 } 148 149 public void setOnmouseover(String onmouseover) { 150 this.onmouseover = onmouseover; 151 } 152 153 public void setOnmouseup(String onmouseup) { 154 this.onmouseup = onmouseup; 155 } 156 157 public void setOnselect(String onselect) { 158 this.onselect = onselect; 159 } 160 161 public void setReadonly(String readonly) { 162 this.readonly = readonly; 163 } 164 165 public void setStyle(String style) { 166 this.style = style; 167 } 168 169 public void setStyleClass(String styleClass) { 170 this.styleClass = styleClass; 171 } 172 173 public void setTabindex(String tabindex) { 174 this.tabindex = tabindex; 175 } 176 177 public void setTitle(String title) { 178 this.title = title; 179 } 180 181 182 public String getRendererType() { 183 return "javax.faces.Checkbox"; 184 } 185 186 public String getComponentType() { 187 return "javax.faces.HtmlSelectBooleanCheckbox"; 188 } 189 190 191 protected void setProperties(UIComponent component) { 192 super.setProperties(component); 193 194 UISelectBoolean select; 195 try { 196 select = (UISelectBoolean) component; 197 } catch (ClassCastException cce) { 198 throw new FacesException("Tag <" + getClass().getName() + "> expected UISelectBoolean. " + 199 "Got <" + component.getClass().getName() + ">"); 200 } 201 202 if (converter != null) { 203 if (FacesUtils.isExpression(converter)) { 204 select.setValueBinding("converter", createValueBinding(converter)); 205 } else { 206 select.setConverter(getApplication().createConverter(converter)); 207 } 208 } 209 210 if (immediate != null) { 211 if (FacesUtils.isExpression(immediate)) { 212 select.setValueBinding("immediate", createValueBinding(immediate)); 213 } else { 214 select.setImmediate(BooleanUtils.toBoolean(immediate)); 215 } 216 } 217 218 if (required != null) { 219 if (FacesUtils.isExpression(required)) { 220 select.setValueBinding("required", createValueBinding(required)); 221 } else { 222 select.setRequired(BooleanUtils.toBoolean(required)); 223 } 224 } 225 226 if (validator != null) { 227 if (FacesUtils.isExpression(validator)) { 228 MethodBinding vb = getApplication().createMethodBinding(validator, 229 new Class []{ FacesContext.class, UIComponent.class, Object .class }); 230 select.setValidator(vb); 231 } else { 232 throw new FacesException("Tag <" + getClass().getName() + "> validator must be an expression. " + 233 "Got <" + validator + ">"); 234 } 235 } 236 237 if (value != null) { 238 if (FacesUtils.isExpression(value)) { 239 select.setValueBinding("value", createValueBinding(value)); 240 } else { 241 select.setValue(value); 242 } 243 } 244 245 if (valueChangeListener != null) { 246 if (FacesUtils.isExpression(valueChangeListener)) { 247 MethodBinding vb = getApplication().createMethodBinding(valueChangeListener, 248 new Class []{ ValueChangeEvent.class }); 249 select.setValueChangeListener(vb); 250 } else { 251 throw new FacesException("Tag <" + getClass().getName() + "> valueChangeListener must be an expression. " + 252 "Got <" + valueChangeListener + ">"); 253 } 254 } 255 256 setProperty(component, "accesskey", accesskey); 257 setProperty(component, "dir", dir); 258 259 setBooleanProperty(component, "disabled", disabled); 260 261 setProperty(component, "lang", lang); 262 setProperty(component, "onblur", onblur); 263 setProperty(component, "onchange", onchange); 264 setProperty(component, "onclick", onclick); 265 setProperty(component, "ondblclick", ondblclick); 266 setProperty(component, "onfocus", onfocus); 267 setProperty(component, "onkeydown", onkeydown); 268 setProperty(component, "onkeypress", onkeypress); 269 setProperty(component, "onkeyup", onkeyup); 270 setProperty(component, "onmousedown", onmousedown); 271 setProperty(component, "onmousemove", onmousemove); 272 setProperty(component, "onmouseout", onmouseout); 273 setProperty(component, "onmouseover", onmouseover); 274 setProperty(component, "onmouseup", onmouseup); 275 setProperty(component, "onselect", onselect); 276 277 setBooleanProperty(component, "readonly", readonly); 278 279 setProperty(component, "style", style); 280 setProperty(component, "styleClass", styleClass); 281 setProperty(component, "tabindex", tabindex); 282 setProperty(component, "title", title); 283 } 284 285 public void recycle() { 286 super.recycle(); 287 converter = null; 288 immediate = null; 289 required = null; 290 validator = null; 291 value = null; 292 valueChangeListener = null; 293 accesskey = null; 294 dir = null; 295 disabled = null; 296 lang = null; 297 onblur = null; 298 onchange = null; 299 onclick = null; 300 ondblclick = null; 301 onfocus = null; 302 onkeydown = null; 303 onkeypress = null; 304 onkeyup = null; 305 onmousedown = null; 306 onmousemove = null; 307 onmouseout = null; 308 onmouseover = null; 309 onmouseup = null; 310 onselect = null; 311 readonly = null; 312 style = null; 313 styleClass = null; 314 tabindex = null; 315 title = null; 316 } 317 } 318 | Popular Tags |