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