1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.custom.calendar;
20
21 import javax.el.ValueExpression;
22 import javax.faces.component.UIComponent;
23 import javax.faces.context.FacesContext;
24
25 import org.apache.myfaces.shared_tomahawk.util.ClassUtils;
26
27
28
29
30
31
32
33
34
35 public abstract class AbstractHtmlInputCalendarTag extends
36 org.apache.myfaces.generated.taglib.html.ext.HtmlInputTextTag
37 {
38
39 private ValueExpression _dateBusinessConverter;
40
41 public void setDateBusinessConverter( ValueExpression dateBusinessConverter)
42 {
43 _dateBusinessConverter = dateBusinessConverter;
44 }
45
46 public void release() {
47 super.release();
48 _dateBusinessConverter = null;
49 }
50
51
52
53
54 protected void setProperties(UIComponent component) {
55 super.setProperties(component);
56 FacesContext context = FacesContext.getCurrentInstance();
57
58 org.apache.myfaces.custom.calendar.AbstractHtmlInputCalendar comp =
59 (org.apache.myfaces.custom.calendar.AbstractHtmlInputCalendar) component;
60
61 if (_dateBusinessConverter != null)
62 {
63 if (!_dateBusinessConverter.isLiteralText())
64 {
65 comp.setValueExpression("dateBusinessConverter", _dateBusinessConverter);
66 }
67 else
68 {
69 String s = _dateBusinessConverter.getExpressionString();
70 if (s != null)
71 {
72 try
73 {
74 Class clazz = ClassUtils.classForName(s);
75 comp.setDateBusinessConverter( (DateBusinessConverter) ClassUtils.newInstance(clazz));
76 }
77 catch(ClassNotFoundException e)
78 {
79 throw new IllegalArgumentException("Class referenced in calendarConverter not found: "+_dateBusinessConverter);
80 }
81 catch(ClassCastException e)
82 {
83 throw new IllegalArgumentException("Class referenced in calendarConverter is not instance of org.apache.myfaces.custom.calendar.CalendarConverter: "+_dateBusinessConverter);
84 }
85 }
86 }
87 }
88 }
89 }