1 package org.apache.myfaces.tobago.taglib.extension12;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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.apt.annotation.TagAttribute;
23 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
24 import org.apache.myfaces.tobago.apt.annotation.DynamicExpression;
25 import org.apache.myfaces.tobago.internal.taglib.DatePickerTag;
26 import org.apache.myfaces.tobago.internal.taglib.DateTag;
27 import org.apache.myfaces.tobago.internal.taglib.FormTag;
28
29 import javax.servlet.jsp.JspException;
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 @Tag(name = "date")
53 @ExtensionTag(baseClassName = "org.apache.myfaces.tobago.internal.taglib.DateTag")
54 public class DateExtensionTag extends TobagoExtensionBodyTagSupport {
55
56 private static final long serialVersionUID = 2044784791513107420L;
57
58 private javax.el.ValueExpression binding;
59 private javax.el.ValueExpression converter;
60 private javax.el.MethodExpression validator;
61 private javax.el.ValueExpression disabled;
62 private javax.el.ValueExpression focus;
63 private javax.el.ValueExpression label;
64 private javax.el.ValueExpression readonly;
65 private javax.el.ValueExpression rendered;
66 private javax.el.ValueExpression required;
67 private javax.el.ValueExpression tip;
68 private javax.el.ValueExpression value;
69 private javax.el.MethodExpression valueChangeListener;
70 private javax.el.ValueExpression inline;
71 private javax.el.ValueExpression onchange;
72 private javax.el.ValueExpression tabIndex;
73 private javax.el.ValueExpression markup;
74 private javax.el.ValueExpression validatorMessage;
75 private javax.el.ValueExpression converterMessage;
76 private javax.el.ValueExpression requiredMessage;
77
78 private javax.el.ValueExpression labelWidth;
79 private LabelExtensionTag labelTag;
80 private DateTag dateTag;
81
82 @Override
83 public int doStartTag() throws JspException {
84
85 labelTag = new LabelExtensionTag();
86 labelTag.setPageContext(pageContext);
87 if (label != null) {
88 labelTag.setValue(label);
89 }
90
91 if (labelWidth != null) {
92 labelTag.setColumns(createStringValueExpression(labelWidth.getExpressionString() + ";*;fixed"));
93 } else {
94 labelTag.setColumns(createStringValueExpression("fixed;*;fixed"));
95 }
96 if (tip != null) {
97 labelTag.setTip(tip);
98 }
99 if (rendered != null) {
100 labelTag.setRendered(rendered);
101 }
102 if (markup != null) {
103 labelTag.setMarkup(markup);
104 }
105 labelTag.setParent(getParent());
106 labelTag.doStartTag();
107
108 dateTag = new DateTag();
109 dateTag.setPageContext(pageContext);
110 if (value != null) {
111 dateTag.setValue(value);
112 }
113 if (valueChangeListener != null) {
114 dateTag.setValueChangeListener(valueChangeListener);
115 }
116 if (binding != null) {
117 dateTag.setBinding(binding);
118 }
119 if (converter != null) {
120 dateTag.setConverter(converter);
121 }
122 if (validator != null) {
123 dateTag.setValidator(validator);
124 }
125 if (disabled != null) {
126 dateTag.setDisabled(disabled);
127 }
128 if (onchange != null) {
129 dateTag.setOnchange(onchange);
130 }
131 if (focus != null) {
132 dateTag.setFocus(focus);
133 }
134 if (id != null) {
135 dateTag.setId(id);
136 }
137 if (inline != null) {
138 dateTag.setInline(inline);
139 }
140 if (readonly != null) {
141 dateTag.setReadonly(readonly);
142 }
143 if (required != null) {
144 dateTag.setRequired(required);
145 }
146 if (markup != null) {
147 dateTag.setMarkup(markup);
148 }
149 if (tabIndex != null) {
150 dateTag.setTabIndex(tabIndex);
151 }
152 if (validatorMessage != null) {
153 dateTag.setValidatorMessage(validatorMessage);
154 }
155 if (converterMessage != null) {
156 dateTag.setConverterMessage(converterMessage);
157 }
158 if (requiredMessage != null) {
159 dateTag.setRequiredMessage(requiredMessage);
160 }
161
162 dateTag.setParent(labelTag);
163 dateTag.doStartTag();
164
165 return super.doStartTag();
166 }
167
168
169
170 @Override
171 public int doEndTag() throws JspException {
172 dateTag.doEndTag();
173 FormTag formTag = new FormTag();
174 formTag.setPageContext(pageContext);
175 formTag.setParent(labelTag);
176 formTag.doStartTag();
177
178 DatePickerTag datePicker = new DatePickerTag();
179 datePicker.setPageContext(pageContext);
180 datePicker.setFor("@auto");
181 if (tabIndex != null) {
182 datePicker.setTabIndex(tabIndex);
183 }
184 datePicker.setParent(formTag);
185 datePicker.doStartTag();
186 datePicker.doEndTag();
187 formTag.doEndTag();
188
189 labelTag.doEndTag();
190 return super.doEndTag();
191 }
192
193 @Override
194 public void release() {
195 super.release();
196 binding = null;
197 converter = null;
198 validator = null;
199 disabled = null;
200 labelWidth = null;
201 focus = null;
202 label = null;
203 inline = null;
204 readonly = null;
205 rendered = null;
206 required = null;
207 tip = null;
208 value = null;
209 valueChangeListener = null;
210 onchange = null;
211 markup = null;
212 tabIndex = null;
213 labelTag = null;
214 dateTag = null;
215 validatorMessage = null;
216 converterMessage = null;
217 requiredMessage = null;
218 }
219
220
221
222
223 @TagAttribute
224 @UIComponentTagAttribute(type = "java.lang.Object")
225 public void setValue(javax.el.ValueExpression value) {
226 this.value = value;
227 }
228
229
230
231
232
233
234
235
236
237 @TagAttribute
238 @UIComponentTagAttribute(
239 type = {},
240 expression = DynamicExpression.METHOD_BINDING_REQUIRED,
241 methodSignature = "javax.faces.event.ValueChangeEvent")
242 public void setValueChangeListener(javax.el.MethodExpression valueChangeListener) {
243 this.valueChangeListener = valueChangeListener;
244 }
245
246
247
248
249
250 @TagAttribute
251 @UIComponentTagAttribute()
252 public void setLabel(javax.el.ValueExpression label) {
253 this.label = label;
254 }
255
256
257
258
259 @TagAttribute
260 @UIComponentTagAttribute()
261 public void setOnchange(javax.el.ValueExpression onchange) {
262 this.onchange = onchange;
263 }
264
265
266
267
268 @TagAttribute
269 @UIComponentTagAttribute(type = "java.lang.Boolean")
270 public void setFocus(javax.el.ValueExpression focus) {
271 this.focus = focus;
272 }
273
274
275
276
277
278 @TagAttribute
279 @UIComponentTagAttribute(type = "javax.faces.component.UIComponent")
280 public void setBinding(javax.el.ValueExpression binding) {
281 this.binding = binding;
282 }
283
284
285
286
287
288 @TagAttribute
289 @UIComponentTagAttribute(type = "java.lang.Boolean", defaultValue = "true")
290 public void setRendered(javax.el.ValueExpression rendered) {
291 this.rendered = rendered;
292 }
293
294
295
296
297
298
299
300
301
302
303 @TagAttribute
304 @UIComponentTagAttribute(type = "javax.faces.convert.Converter",
305 expression = DynamicExpression.VALUE_BINDING)
306 public void setConverter(javax.el.ValueExpression converter) {
307 this.converter = converter;
308 }
309
310
311
312
313
314
315
316 @TagAttribute
317 @UIComponentTagAttribute(type = {},
318 expression = DynamicExpression.METHOD_BINDING,
319 methodSignature = { "javax.faces.context.FacesContext", "javax.faces.component.UIComponent", "java.lang.Object" })
320 public void setValidator(javax.el.MethodExpression validator) {
321 this.validator = validator;
322 }
323
324
325
326
327 @TagAttribute
328 @UIComponentTagAttribute(type = "java.lang.Boolean")
329 public void setInline(javax.el.ValueExpression inline) {
330 this.inline = inline;
331 }
332
333
334
335
336 @TagAttribute
337 @UIComponentTagAttribute(type = "java.lang.Boolean")
338 public void setReadonly(javax.el.ValueExpression readonly) {
339 this.readonly = readonly;
340 }
341
342
343
344
345 @TagAttribute()
346 @UIComponentTagAttribute(type = "java.lang.Boolean", defaultValue = "false")
347 public void setDisabled(javax.el.ValueExpression disabled) {
348 this.disabled = disabled;
349 }
350
351
352
353
354
355
356 @TagAttribute
357 @UIComponentTagAttribute(type = "java.lang.Boolean")
358 public void setRequired(javax.el.ValueExpression required) {
359 this.required = required;
360 }
361
362
363
364
365 @TagAttribute
366 @UIComponentTagAttribute()
367 public void setTip(javax.el.ValueExpression tip) {
368 this.tip = tip;
369 }
370
371
372
373
374
375
376 @TagAttribute
377 @UIComponentTagAttribute()
378 public void setLabelWidth(javax.el.ValueExpression labelWidth) {
379 this.labelWidth = labelWidth;
380 }
381
382
383
384
385
386 @TagAttribute
387 @UIComponentTagAttribute(defaultValue = "none", type = "java.lang.String[]")
388 public void setMarkup(javax.el.ValueExpression markup) {
389 this.markup = markup;
390 }
391
392 @TagAttribute
393 @UIComponentTagAttribute(type = "java.lang.Integer")
394 public void setTabIndex(javax.el.ValueExpression tabIndex) {
395 this.tabIndex = tabIndex;
396 }
397
398
399
400
401 @TagAttribute
402 @UIComponentTagAttribute()
403 public void setValidatorMessage(javax.el.ValueExpression validatorMessage) {
404 this.validatorMessage = validatorMessage;
405 }
406
407
408
409
410 @TagAttribute
411 @UIComponentTagAttribute()
412 public void setConverterMessage(javax.el.ValueExpression converterMessage) {
413 this.converterMessage = converterMessage;
414 }
415
416
417
418
419 @TagAttribute
420 @UIComponentTagAttribute()
421 public void setRequiredMessage(javax.el.ValueExpression requiredMessage) {
422 this.requiredMessage = requiredMessage;
423 }
424
425 }