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