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.faces.component.UIComponent;
22 import javax.faces.context.FacesContext;
23 import javax.faces.el.ValueBinding;
24
25 import org.apache.myfaces.shared_tomahawk.util.ClassUtils;
26
27
28
29
30
31
32
33 public abstract class AbstractHtmlInputCalendarTag extends
34 org.apache.myfaces.generated.taglib.html.ext.HtmlInputTextTag
35 {
36
37 private String _dateBusinessConverter;
38
39 public void setDateBusinessConverter(String dateBusinessConverter)
40 {
41 _dateBusinessConverter = dateBusinessConverter;
42 }
43
44 public void release() {
45 super.release();
46 _dateBusinessConverter = null;
47 }
48
49
50
51
52 protected void setProperties(UIComponent component) {
53 super.setProperties(component);
54 FacesContext context = FacesContext.getCurrentInstance();
55
56 org.apache.myfaces.custom.calendar.AbstractHtmlInputCalendar comp =
57 (org.apache.myfaces.custom.calendar.AbstractHtmlInputCalendar) component;
58
59 if (_dateBusinessConverter != null)
60 {
61 if (isValueReference(_dateBusinessConverter))
62 {
63 ValueBinding vb = context.getApplication().createValueBinding(_dateBusinessConverter);
64 comp.setValueBinding("dateBusinessConverter", vb);
65 }
66 else
67 {
68 try
69 {
70 Class clazz = ClassUtils.classForName(_dateBusinessConverter);
71 comp.setDateBusinessConverter( (DateBusinessConverter) ClassUtils.newInstance(clazz));
72 }
73 catch(ClassNotFoundException e)
74 {
75 throw new IllegalArgumentException("Class referenced in calendarConverter not found: "+_dateBusinessConverter);
76 }
77 catch(ClassCastException e)
78 {
79 throw new IllegalArgumentException("Class referenced in calendarConverter is not instance of org.apache.myfaces.custom.calendar.CalendarConverter: "+_dateBusinessConverter);
80 }
81 }
82 }
83 }
84 }