1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.internal.taglib.extension;
21
22 import org.apache.commons.lang.StringUtils;
23 import org.apache.myfaces.tobago.apt.annotation.DynamicExpression;
24 import org.apache.myfaces.tobago.apt.annotation.ExtensionTag;
25 import org.apache.myfaces.tobago.apt.annotation.Tag;
26 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
27 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
28 import org.apache.myfaces.tobago.component.Attributes;
29 import org.apache.myfaces.tobago.component.Facets;
30 import org.apache.myfaces.tobago.internal.component.AbstractUICommandBase;
31 import org.apache.myfaces.tobago.internal.taglib.MenuCommandTag;
32 import org.apache.myfaces.tobago.internal.taglib.SelectOneRadioTag;
33
34 import javax.faces.component.UIComponent;
35 import javax.faces.webapp.FacetTag;
36 import javax.servlet.jsp.JspException;
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 @Tag(
55 name = "menuRadio",
56 tagExtraInfoClassName = "org.apache.myfaces.tobago.internal.taglib.component.CommandTagExtraInfo")
57 @ExtensionTag(baseClassName = "org.apache.myfaces.tobago.internal.taglib.MenuRadioTag")
58 public class MenuRadioExtensionTag extends TobagoExtensionBodyTagSupport {
59
60 private javax.el.ValueExpression rendered;
61 private javax.el.ValueExpression value;
62
63 private MenuCommandTag menuCommandTag;
64 private SelectOneRadioTag inTag;
65 private FacetTag facetTag;
66 private javax.el.MethodExpression action;
67 private javax.el.MethodExpression actionListener;
68 private javax.el.ValueExpression onclick;
69 private javax.el.ValueExpression link;
70 private javax.el.ValueExpression disabled;
71 private javax.el.ValueExpression binding;
72 private javax.el.ValueExpression label;
73 private javax.el.ValueExpression immediate;
74 private javax.el.ValueExpression transition;
75 private javax.el.ValueExpression converter;
76 private javax.el.ValueExpression renderedPartially;
77 private String fieldId;
78
79 @Override
80 public int doStartTag() throws JspException {
81
82 menuCommandTag = new MenuCommandTag();
83 menuCommandTag.setPageContext(pageContext);
84 menuCommandTag.setParent(getParent());
85 if (id != null) {
86 menuCommandTag.setId(id);
87 }
88 if (rendered != null) {
89 menuCommandTag.setRendered(rendered);
90 }
91 if (action != null) {
92 menuCommandTag.setAction(action);
93 }
94 if (actionListener != null) {
95 menuCommandTag.setActionListener(actionListener);
96 }
97 if (onclick != null) {
98 menuCommandTag.setOnclick(onclick);
99 }
100 if (link != null) {
101 menuCommandTag.setLink(link);
102 }
103 if (disabled != null) {
104 menuCommandTag.setDisabled(disabled);
105 }
106 if (binding != null) {
107 menuCommandTag.setBinding(binding);
108 }
109 if (label != null) {
110 menuCommandTag.setLabel(label);
111 }
112 if (immediate != null) {
113 menuCommandTag.setImmediate(immediate);
114 }
115 if (transition != null) {
116 menuCommandTag.setTransition(transition);
117 }
118 if (renderedPartially != null) {
119 menuCommandTag.setRenderedPartially(renderedPartially);
120 }
121 menuCommandTag.setJspId(nextJspId());
122 menuCommandTag.doStartTag();
123
124 facetTag = new FacetTag();
125 facetTag.setPageContext(pageContext);
126 facetTag.setParent(menuCommandTag);
127 facetTag.setName(Facets.RADIO);
128
129 facetTag.doStartTag();
130 inTag = new SelectOneRadioTag();
131 inTag.setPageContext(pageContext);
132 inTag.setParent(facetTag);
133 if (converter != null) {
134 inTag.setConverter(converter);
135 }
136 if (value != null) {
137 inTag.setValue(value);
138 }
139 if (fieldId != null) {
140 inTag.setId(fieldId);
141 }
142 inTag.setJspId(nextJspId());
143 inTag.doStartTag();
144
145 return super.doStartTag();
146 }
147
148 @Override
149 public int doEndTag() throws JspException {
150
151 if (renderedPartially == null) {
152
153 UIComponent inComponent = inTag.getComponentInstance();
154 AbstractUICommandBase command = (AbstractUICommandBase) menuCommandTag.getComponentInstance();
155 javax.el.ValueExpression expression = inComponent.getValueExpression(Attributes.RENDERED_PARTIALLY);
156 if (expression != null) {
157 command.setValueExpression(Attributes.RENDERED_PARTIALLY, expression);
158 } else {
159 Object renderedPartially = inComponent.getAttributes().get(Attributes.RENDERED_PARTIALLY);
160 command.setRenderedPartially(StringUtils.split((String) renderedPartially, ", "));
161 }
162 }
163
164 inTag.doEndTag();
165 facetTag.doEndTag();
166 menuCommandTag.doEndTag();
167
168 return super.doEndTag();
169 }
170
171 public void release() {
172 super.release();
173 rendered = null;
174 value = null;
175 action = null;
176 actionListener = null;
177 onclick = null;
178 link = null;
179 disabled = null;
180 binding = null;
181 label = null;
182 immediate = null;
183 transition = null;
184 converter = null;
185 renderedPartially = null;
186 fieldId = null;
187 menuCommandTag = null;
188 facetTag = null;
189 inTag = null;
190 }
191
192
193
194
195
196
197
198
199
200
201 @TagAttribute
202 @UIComponentTagAttribute(type = {}, expression = DynamicExpression.METHOD_EXPRESSION,
203 methodReturnType = "java.lang.Object")
204 public void setAction(javax.el.MethodExpression action) {
205 this.action = action;
206 }
207
208
209
210
211
212
213
214 @TagAttribute
215 @UIComponentTagAttribute(type = {}, expression = DynamicExpression.METHOD_EXPRESSION_REQUIRED,
216 methodSignature = "javax.faces.event.ActionEvent")
217 public void setActionListener(javax.el.MethodExpression actionListener) {
218 this.actionListener = actionListener;
219 }
220
221
222
223
224
225
226 @TagAttribute
227 @UIComponentTagAttribute()
228 public void setOnclick(javax.el.ValueExpression onclick) {
229 this.onclick = onclick;
230 }
231
232
233
234
235
236
237 @TagAttribute
238 @UIComponentTagAttribute()
239 public void setLink(javax.el.ValueExpression link) {
240 this.link = link;
241 }
242
243
244
245
246
247 @TagAttribute
248 @UIComponentTagAttribute(type = "javax.faces.component.UIComponent")
249 public void setBinding(javax.el.ValueExpression binding) throws JspException {
250 this.binding = binding;
251 }
252
253
254
255
256
257 @TagAttribute
258 @UIComponentTagAttribute(type = "boolean", defaultValue = "true")
259 public void setRendered(javax.el.ValueExpression rendered) {
260 this.rendered = rendered;
261 }
262
263
264
265
266 @TagAttribute()
267 @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
268 public void setDisabled(javax.el.ValueExpression disabled) {
269 this.disabled = disabled;
270 }
271
272
273
274
275 @TagAttribute
276 @UIComponentTagAttribute(type = "java.lang.Object")
277 public void setValue(javax.el.ValueExpression value) {
278 this.value = value;
279 }
280
281
282
283
284
285 @TagAttribute
286 @UIComponentTagAttribute()
287 public void setLabel(javax.el.ValueExpression label) {
288 this.label = label;
289 }
290
291
292
293
294
295
296
297 @TagAttribute
298 @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
299 public void setImmediate(javax.el.ValueExpression immediate) {
300 this.immediate = immediate;
301 }
302
303
304
305
306
307
308
309 @TagAttribute
310 @UIComponentTagAttribute(type = "boolean", defaultValue = "true")
311 public void setTransition(javax.el.ValueExpression transition) {
312 this.transition = transition;
313 }
314
315
316
317
318
319
320
321
322
323
324 @TagAttribute
325 @UIComponentTagAttribute(type = "javax.faces.convert.Converter",
326 expression = DynamicExpression.VALUE_EXPRESSION)
327 public void setConverter(javax.el.ValueExpression converter) {
328 this.converter = converter;
329 }
330
331
332
333
334 @TagAttribute
335 @UIComponentTagAttribute(type = "java.lang.String[]")
336 public void setRenderedPartially(javax.el.ValueExpression renderedPartially) {
337 this.renderedPartially = renderedPartially;
338 }
339
340
341
342
343
344 @TagAttribute(rtexprvalue = true)
345 @UIComponentTagAttribute
346 public void setFieldId(String fieldId) {
347 this.fieldId = fieldId;
348 }
349
350
351
352
353
354
355
356 @TagAttribute(rtexprvalue = true)
357 @UIComponentTagAttribute
358 public void setId(String id) {
359 super.setId(id);
360 }
361 }