View Javadoc

1   package org.apache.myfaces.tobago.taglib.extension;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one or more
5    * contributor license agreements.  See the NOTICE file distributed with
6    * this work for additional information regarding copyright ownership.
7    * The ASF licenses this file to You under the Apache License, Version 2.0
8    * (the "License"); you may not use this file except in compliance with
9    * the License.  You may obtain a copy of the License at
10   *
11   *      http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing, software
14   * distributed under the License is distributed on an "AS IS" BASIS,
15   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   * See the License for the specific language governing permissions and
17   * limitations under the License.
18   */
19  
20  import org.apache.myfaces.tobago.apt.annotation.ExtensionTag;
21  import org.apache.myfaces.tobago.apt.annotation.Tag;
22  import org.apache.myfaces.tobago.internal.taglib.SelectOneRadioTag;
23  import org.apache.myfaces.tobago.taglib.decl.HasBinding;
24  import org.apache.myfaces.tobago.taglib.decl.HasConverter;
25  import org.apache.myfaces.tobago.taglib.decl.HasId;
26  import org.apache.myfaces.tobago.taglib.decl.HasLabel;
27  import org.apache.myfaces.tobago.taglib.decl.HasLabelWidth;
28  import org.apache.myfaces.tobago.taglib.decl.HasOnchange;
29  import org.apache.myfaces.tobago.taglib.decl.HasRenderRange;
30  import org.apache.myfaces.tobago.taglib.decl.HasTabIndex;
31  import org.apache.myfaces.tobago.taglib.decl.HasTip;
32  import org.apache.myfaces.tobago.taglib.decl.HasValidator;
33  import org.apache.myfaces.tobago.taglib.decl.HasValue;
34  import org.apache.myfaces.tobago.taglib.decl.HasValueChangeListener;
35  import org.apache.myfaces.tobago.taglib.decl.IsDisabled;
36  import org.apache.myfaces.tobago.taglib.decl.IsInline;
37  import org.apache.myfaces.tobago.taglib.decl.IsReadonly;
38  import org.apache.myfaces.tobago.taglib.decl.IsRendered;
39  import org.apache.myfaces.tobago.taglib.decl.IsRequired;
40  import org.apache.myfaces.tobago.taglib.decl.HasValidatorMessage;
41  import org.apache.myfaces.tobago.taglib.decl.HasRequiredMessage;
42  import org.apache.myfaces.tobago.taglib.decl.HasConverterMessage;
43  import org.apache.myfaces.tobago.taglib.decl.HasMarkup;
44  
45  import javax.servlet.jsp.JspException;
46  import javax.servlet.jsp.tagext.BodyTagSupport;
47  
48  /**
49   * Render a set of radiobuttons.
50   *
51   * @since 1.0.13
52   */
53  
54  @Tag(name = "selectOneRadio")
55  @ExtensionTag(baseClassName = "org.apache.myfaces.tobago.internal.taglib.SelectOneRadioTag")
56  public class SelectOneRadioExtensionTag extends BodyTagSupport
57      implements HasId, HasValue, HasValueChangeListener, IsDisabled,
58      IsReadonly, HasOnchange, IsInline, HasLabel, HasLabelWidth, IsRequired,
59      HasValidatorMessage, HasRequiredMessage, HasConverterMessage, HasMarkup,
60      IsRendered, HasBinding, HasTip, HasValidator, HasConverter, HasRenderRange, HasTabIndex {
61  
62    private String required;
63    private String value;
64    private String valueChangeListener;
65    private String disabled;
66    private String readonly;
67    private String onchange;
68    private String inline;
69    private String label;
70    private String rendered;
71    private String binding;
72    private String tip;
73    private String validator;
74    private String converter;
75    private String labelWidth;
76    private String tabIndex;
77    private String focus;
78    private String renderRange;
79    private String validatorMessage;
80    private String converterMessage;
81    private String requiredMessage;
82    private String markup;
83  
84    private LabelExtensionTag labelTag;
85    private SelectOneRadioTag selectOneRadioTag;
86  
87    @Override
88    public int doStartTag() throws JspException {
89  
90      labelTag = new LabelExtensionTag();
91      labelTag.setPageContext(pageContext);
92      if (label != null) {
93        labelTag.setValue(label);
94      }
95      if (tip != null) {
96        labelTag.setTip(tip);
97      }
98      if (rendered != null) {
99        labelTag.setRendered(rendered);
100     }
101     if (labelWidth != null) {
102       labelTag.setColumns(labelWidth + ";*");
103     }
104     if (markup != null) {
105       labelTag.setMarkup(markup);
106     }
107     labelTag.setParent(getParent());
108     labelTag.doStartTag();
109 
110     selectOneRadioTag = new SelectOneRadioTag();
111     selectOneRadioTag.setPageContext(pageContext);
112     if (value != null) {
113       selectOneRadioTag.setValue(value);
114     }
115     if (valueChangeListener != null) {
116       selectOneRadioTag.setValueChangeListener(valueChangeListener);
117     }
118     if (validator != null) {
119       selectOneRadioTag.setValidator(validator);
120     }
121     if (converter != null) {
122       selectOneRadioTag.setConverter(converter);
123     }
124     if (binding != null) {
125       selectOneRadioTag.setBinding(binding);
126     }
127     if (onchange != null) {
128       selectOneRadioTag.setOnchange(onchange);
129     }
130     if (disabled != null) {
131       selectOneRadioTag.setDisabled(disabled);
132     }
133     if (inline != null) {
134       selectOneRadioTag.setInline(inline);
135     }
136     if (focus != null) {
137       selectOneRadioTag.setFocus(focus);
138     }
139     if (id != null) {
140       selectOneRadioTag.setId(id);
141     }
142     if (readonly != null) {
143       selectOneRadioTag.setReadonly(readonly);
144     }
145     if (required != null) {
146       selectOneRadioTag.setRequired(required);
147     }
148     if (tabIndex != null) {
149       selectOneRadioTag.setTabIndex(tabIndex);
150     }
151     if (renderRange != null) {
152       selectOneRadioTag.setRenderRange(renderRange);
153     }
154     if (validatorMessage != null) {
155       selectOneRadioTag.setValidatorMessage(validatorMessage);
156     }
157     if (converterMessage != null) {
158       selectOneRadioTag.setConverterMessage(converterMessage);
159     }
160     if (requiredMessage != null) {
161       selectOneRadioTag.setRequiredMessage(requiredMessage);
162     }
163     if (markup != null) {
164       selectOneRadioTag.setMarkup(markup);
165     }
166 
167     selectOneRadioTag.setParent(labelTag);
168     selectOneRadioTag.doStartTag();
169 
170     return super.doStartTag();
171   }
172 
173   @Override
174   public int doEndTag() throws JspException {
175     selectOneRadioTag.doEndTag();
176     labelTag.doEndTag();
177     return super.doEndTag();
178   }
179 
180   @Override
181   public void release() {
182     super.release();
183     binding = null;
184     onchange = null;
185     disabled = null;
186     inline = null;
187     label = null;
188     labelWidth = null;
189     converter = null;
190     validator = null;
191     readonly = null;
192     rendered = null;
193     required = null;
194     tip = null;
195     value = null;
196     valueChangeListener = null;
197     tabIndex = null;
198     selectOneRadioTag = null;
199     labelTag = null;
200     focus = null;
201     renderRange = null;
202     validatorMessage = null;
203     converterMessage = null;
204     requiredMessage = null;
205     markup = null;
206   }
207 
208   public void setRequired(String required) {
209     this.required = required;
210   }
211 
212   public void setValue(String value) {
213     this.value = value;
214   }
215 
216   public void setValueChangeListener(String valueChangeListener) {
217     this.valueChangeListener = valueChangeListener;
218   }
219 
220   public void setValidator(String validator) {
221     this.validator = validator;
222   }
223 
224   public void setDisabled(String disabled) {
225     this.disabled = disabled;
226   }
227 
228   public void setReadonly(String readonly) {
229     this.readonly = readonly;
230   }
231 
232   public void setOnchange(String onchange) {
233     this.onchange = onchange;
234   }
235 
236   public void setConverter(String converter) {
237     this.converter = converter;
238   }
239 
240   public void setInline(String inline) {
241     this.inline = inline;
242   }
243 
244   public void setLabel(String label) {
245     this.label = label;
246   }
247 
248   public void setRendered(String rendered) {
249     this.rendered = rendered;
250   }
251 
252   public void setBinding(String binding) {
253     this.binding = binding;
254   }
255 
256   public void setTip(String tip) {
257     this.tip = tip;
258   }
259 
260   public void setLabelWidth(String labelWidth) {
261     this.labelWidth = labelWidth;
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 
272   public void setRenderRange(String renderRange) {
273     this.renderRange = renderRange;
274   }
275 
276   public void setValidatorMessage(String validatorMessage) {
277     this.validatorMessage = validatorMessage;
278   }
279 
280   public void setConverterMessage(String converterMessage) {
281     this.converterMessage = converterMessage;
282   }
283 
284   public void setRequiredMessage(String requiredMessage) {
285     this.requiredMessage = requiredMessage;
286   }
287 
288   public void setMarkup(String markup) {
289     this.markup = markup;
290   }
291 }