001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, 013 * software distributed under the License is distributed on an 014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 015 * KIND, either express or implied. See the License for the 016 * specific language governing permissions and limitations 017 * under the License. 018 */ 019 020 package org.apache.myfaces.tobago.taglib.extension; 021 022 import org.apache.myfaces.tobago.apt.annotation.ExtensionTag; 023 import org.apache.myfaces.tobago.apt.annotation.Tag; 024 import org.apache.myfaces.tobago.taglib.component.SelectManyListboxTag; 025 import org.apache.myfaces.tobago.taglib.decl.HasBinding; 026 import org.apache.myfaces.tobago.taglib.decl.HasConverter; 027 import org.apache.myfaces.tobago.taglib.decl.HasDeprecatedHeight; 028 import org.apache.myfaces.tobago.taglib.decl.HasId; 029 import org.apache.myfaces.tobago.taglib.decl.HasLabel; 030 import org.apache.myfaces.tobago.taglib.decl.HasLabelWidth; 031 import org.apache.myfaces.tobago.taglib.decl.HasMarkup; 032 import org.apache.myfaces.tobago.taglib.decl.HasOnchange; 033 import org.apache.myfaces.tobago.taglib.decl.HasTabIndex; 034 import org.apache.myfaces.tobago.taglib.decl.HasTip; 035 import org.apache.myfaces.tobago.taglib.decl.HasValidator; 036 import org.apache.myfaces.tobago.taglib.decl.HasValue; 037 import org.apache.myfaces.tobago.taglib.decl.HasValueChangeListener; 038 import org.apache.myfaces.tobago.taglib.decl.IsDisabled; 039 import org.apache.myfaces.tobago.taglib.decl.IsFocus; 040 import org.apache.myfaces.tobago.taglib.decl.IsInline; 041 import org.apache.myfaces.tobago.taglib.decl.IsReadonly; 042 import org.apache.myfaces.tobago.taglib.decl.IsRendered; 043 import org.apache.myfaces.tobago.taglib.decl.IsRequired; 044 import org.apache.myfaces.tobago.util.Deprecation; 045 046 import javax.servlet.jsp.JspException; 047 import javax.servlet.jsp.tagext.BodyTagSupport; 048 049 /* 050 * Date: 16.12.2005 051 * Time: 19:12:33 052 */ 053 054 /** 055 * Render a group of checkboxes. 056 */ 057 058 @Tag(name = "selectManyListbox") 059 @ExtensionTag(baseClassName = "org.apache.myfaces.tobago.taglib.component.SelectManyListboxTag") 060 public class SelectManyListboxExtensionTag extends BodyTagSupport 061 implements HasId, HasValue, HasValueChangeListener, IsDisabled, HasDeprecatedHeight, IsInline, 062 HasLabel, HasLabelWidth, IsRendered, HasBinding, HasTip, HasConverter, HasValidator, HasOnchange, 063 IsReadonly, HasMarkup, IsFocus, IsRequired, HasTabIndex { 064 065 private String required; 066 private String value; 067 private String valueChangeListener; 068 private String disabled; 069 private String readonly; 070 private String onchange; 071 private String inline; 072 private String label; 073 private String rendered; 074 private String binding; 075 private String tip; 076 private String height; 077 private String converter; 078 private String validator; 079 private String labelWidth; 080 private String markup; 081 private String tabIndex; 082 private String focus; 083 084 private LabelExtensionTag labelTag; 085 private SelectManyListboxTag selectManyListboxTag; 086 087 @Override 088 public int doStartTag() throws JspException { 089 090 labelTag = new LabelExtensionTag(); 091 labelTag.setPageContext(pageContext); 092 labelTag.setRows("*"); 093 if (label != null) { 094 labelTag.setValue(label); 095 } 096 if (tip != null) { 097 labelTag.setTip(tip); 098 } 099 if (rendered != null) { 100 labelTag.setRendered(rendered); 101 } 102 if (labelWidth != null) { 103 labelTag.setColumns(labelWidth + ";*"); 104 } 105 if (markup != null) { 106 labelTag.setMarkup(markup); 107 } 108 labelTag.setParent(getParent()); 109 labelTag.doStartTag(); 110 111 selectManyListboxTag = new SelectManyListboxTag(); 112 selectManyListboxTag.setPageContext(pageContext); 113 if (value != null) { 114 selectManyListboxTag.setValue(value); 115 } 116 if (valueChangeListener != null) { 117 selectManyListboxTag.setValueChangeListener(valueChangeListener); 118 } 119 if (binding != null) { 120 selectManyListboxTag.setBinding(binding); 121 } 122 if (onchange != null) { 123 selectManyListboxTag.setOnchange(onchange); 124 } 125 if (validator != null) { 126 selectManyListboxTag.setValidator(validator); 127 } 128 if (converter != null) { 129 selectManyListboxTag.setConverter(converter); 130 } 131 if (disabled != null) { 132 selectManyListboxTag.setDisabled(disabled); 133 } 134 if (inline != null) { 135 selectManyListboxTag.setInline(inline); 136 } 137 if (focus != null) { 138 selectManyListboxTag.setFocus(focus); 139 } 140 if (id != null) { 141 selectManyListboxTag.setId(id); 142 } 143 if (height != null) { 144 selectManyListboxTag.setHeight(height); 145 } 146 if (readonly != null) { 147 selectManyListboxTag.setReadonly(readonly); 148 } 149 if (required != null) { 150 selectManyListboxTag.setRequired(required); 151 } 152 if (markup != null) { 153 selectManyListboxTag.setMarkup(markup); 154 } 155 if (tabIndex != null) { 156 selectManyListboxTag.setTabIndex(tabIndex); 157 } 158 selectManyListboxTag.setParent(labelTag); 159 selectManyListboxTag.doStartTag(); 160 161 return super.doStartTag(); 162 } 163 164 @Override 165 public int doEndTag() throws JspException { 166 selectManyListboxTag.doEndTag(); 167 labelTag.doEndTag(); 168 return super.doEndTag(); 169 } 170 171 @Override 172 public void release() { 173 super.release(); 174 binding = null; 175 onchange = null; 176 disabled = null; 177 inline = null; 178 label = null; 179 labelWidth = null; 180 height = null; 181 readonly = null; 182 rendered = null; 183 converter = null; 184 validator = null; 185 required = null; 186 tip = null; 187 value = null; 188 valueChangeListener = null; 189 markup = null; 190 tabIndex = null; 191 selectManyListboxTag = null; 192 labelTag = null; 193 focus = null; 194 } 195 196 public void setRequired(String required) { 197 this.required = required; 198 } 199 200 public void setValue(String value) { 201 this.value = value; 202 } 203 204 public void setValueChangeListener(String valueChangeListener) { 205 this.valueChangeListener = valueChangeListener; 206 } 207 208 public void setDisabled(String disabled) { 209 this.disabled = disabled; 210 } 211 212 public void setReadonly(String readonly) { 213 this.readonly = readonly; 214 } 215 216 public void setOnchange(String onchange) { 217 this.onchange = onchange; 218 } 219 220 public void setInline(String inline) { 221 this.inline = inline; 222 } 223 224 public void setLabel(String label) { 225 this.label = label; 226 } 227 228 public void setHeight(String height) { 229 if (Deprecation.LOG.isWarnEnabled()) { 230 Deprecation.LOG.warn("Attribute 'height' is deprecated, " 231 + "and will removed soon! Please use a layout manager instead."); 232 } 233 this.height = height; 234 } 235 236 public void setValidator(String validator) { 237 this.validator = validator; 238 } 239 240 public void setConverter(String converter) { 241 this.converter = converter; 242 } 243 244 public void setRendered(String rendered) { 245 this.rendered = rendered; 246 } 247 248 public void setBinding(String binding) { 249 this.binding = binding; 250 } 251 252 public void setTip(String tip) { 253 this.tip = tip; 254 } 255 256 public void setLabelWidth(String labelWidth) { 257 this.labelWidth = labelWidth; 258 } 259 260 public void setMarkup(String markup) { 261 this.markup = markup; 262 } 263 264 public void setTabIndex(String tabIndex) { 265 this.tabIndex = tabIndex; 266 } 267 268 public void setFocus(String focus) { 269 this.focus = focus; 270 } 271 }