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