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.faces.component.UIComponent;
22 import javax.faces.context.FacesContext;
23 import javax.faces.el.ValueBinding;
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 String _dateBusinessConverter;
41
42 public void setDateBusinessConverter(String 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 (isValueReference(_dateBusinessConverter))
65 {
66 ValueBinding vb = context.getApplication().createValueBinding(_dateBusinessConverter);
67 comp.setValueBinding("dateBusinessConverter", vb);
68 }
69 else
70 {
71 try
72 {
73 Class clazz = ClassUtils.classForName(_dateBusinessConverter);
74 comp.setDateBusinessConverter( (DateBusinessConverter) ClassUtils.newInstance(clazz));
75 }
76 catch(ClassNotFoundException e)
77 {
78 throw new IllegalArgumentException("Class referenced in calendarConverter not found: "+_dateBusinessConverter);
79 }
80 catch(ClassCastException e)
81 {
82 throw new IllegalArgumentException("Class referenced in calendarConverter is not instance of org.apache.myfaces.custom.calendar.CalendarConverter: "+_dateBusinessConverter);
83 }
84 }
85 }
86 }
87 }