KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > views > engines > datepicker > DatePicker


1 //
2
// ____.
3
// __/\ ______| |__/\. _______
4
// __ .____| | \ | +----+ \
5
// _______| /--| | | - \ _ | : - \_________
6
// \\______: :---| : : | : | \________>
7
// |__\---\_____________:______: :____|____:_____\
8
// /_____|
9
//
10
// . . . i n j a h i a w e t r u s t . . .
11
//
12

13 package org.jahia.views.engines.datepicker;
14
15 import java.lang.reflect.InvocationTargetException JavaDoc;
16 import java.util.Calendar JavaDoc;
17 import java.util.Date JavaDoc;
18 import java.util.HashMap JavaDoc;
19 import java.util.Iterator JavaDoc;
20 import java.util.TimeZone JavaDoc;
21 import java.util.Vector JavaDoc;
22
23 public class DatePicker {
24
25     private static DatePicker datePicker;
26     private HashMap JavaDoc listeners = new HashMap JavaDoc();
27
28     private DatePicker(){}
29
30     public static synchronized DatePicker getInstance(){
31         if ( datePicker == null ){
32             datePicker = new DatePicker();
33         }
34         return datePicker;
35     }
36
37     public void addListener(String JavaDoc name, DatePickerEventListener listener){
38         if ( name != null && listener != null ){
39             listeners.put(name, listener);
40         }
41     }
42
43     public DatePickerEventListener getListener(String JavaDoc name){
44         return (DatePickerEventListener)listeners.get(name);
45     }
46
47     public void removeListener(String JavaDoc name){
48         listeners.remove(name);
49     }
50
51     public void wakeupListener(String JavaDoc methodName, DatePickerEvent ev){
52         Iterator JavaDoc iterator = listeners.values().iterator();
53         while ( iterator.hasNext() ){
54             DatePickerEventListener listener =
55                     (DatePickerEventListener)iterator.next();
56             try {
57                 Class JavaDoc lClass = listener.getClass();
58                 Class JavaDoc eClass = ev.getClass();
59                 java.lang.reflect.Method JavaDoc method =
60                         lClass.getMethod( methodName, new Class JavaDoc[] { eClass } );
61                 if (method != null) {
62                     method.invoke( listener,
63                     new Object JavaDoc[] { (org.jahia.views.engines.datepicker.DatePickerEvent)ev } );
64                 }
65             } catch (NoSuchMethodException JavaDoc nsme) {
66                 nsme.printStackTrace();
67             } catch (InvocationTargetException JavaDoc ite) {
68                 ite.printStackTrace();
69             } catch (IllegalAccessException JavaDoc iae) {
70                 iae.printStackTrace();
71             }
72         }
73     }
74
75     /**
76      * Returns a readable date format for a given long value.
77      *
78      * @param dateValue
79      * @return
80      */

81     public static String JavaDoc getDate(long date){
82
83         Vector JavaDoc months = new Vector JavaDoc();
84         months.add("January");
85         months.add("February");
86         months.add("March");
87         months.add("April");
88         months.add("May");
89         months.add("June");
90         months.add("July");
91         months.add("August");
92         months.add("September");
93         months.add("October");
94         months.add("November");
95         months.add("December");
96
97         String JavaDoc vData = "DD MONTH YYYY";
98         long t1 = date;
99
100         TimeZone JavaDoc tz = TimeZone.getTimeZone("UTC");
101         Calendar JavaDoc cal = Calendar.getInstance(tz);
102         cal.setTime(new Date JavaDoc(t1));
103         int year = cal.get(Calendar.YEAR);
104         int mon = cal.get(Calendar.MONTH);
105         int mon2 = mon+1;
106         int day = cal.get(Calendar.DAY_OF_MONTH);
107         int hour = cal.get(Calendar.HOUR_OF_DAY);
108         int min = cal.get(Calendar.MINUTE);
109
110         String JavaDoc vMonth = new String JavaDoc();
111         vMonth = String.valueOf(1 + mon);
112         vMonth = (vMonth.length() < 2) ? "0" + vMonth : vMonth;
113         String JavaDoc vMon = ((String JavaDoc)months.get(mon)).substring(0,3);
114         String JavaDoc vFMon = (String JavaDoc)months.get(mon);
115         String JavaDoc vY4 = new String JavaDoc();
116         vY4 = String.valueOf(year);
117         String JavaDoc vY2 = new String JavaDoc();
118         vY2 = vY4.substring(2,4);
119         String JavaDoc vDD = new String JavaDoc();
120         vDD = String.valueOf(day);
121         vDD = (vDD.length() < 2) ? "0" + vDD : vDD;
122         String JavaDoc h24 = String.valueOf(hour);
123         String JavaDoc h12;
124         String JavaDoc vTT;
125         if (hour > 12)
126         {
127             h12 = String.valueOf(hour - 12);
128             vTT = "PM";
129         }
130         else if (hour == 0)
131         {
132             h12 = String.valueOf(12);
133             vTT = "PM";
134         }
135         else
136         {
137             h12 = String.valueOf(hour);
138             vTT = "AM";
139         }
140         h24 = (h24.length() < 2) ? "0" + h24 : h24;
141         h12 = (h12.length() < 2) ? "0" + h12 : h12;
142
143         String JavaDoc m = String.valueOf(min);
144         m = (m.length() < 2) ? "0" + m : m;
145         String JavaDoc vT24 = h24 + ":" + m;
146         String JavaDoc vT12 = h12 + ":" + m;
147
148         StringBuffer JavaDoc data = new StringBuffer JavaDoc(vData);
149         int pos = vData.toUpperCase().indexOf("YYYY");
150         if (pos != -1)
151         {
152             data = data.replace(pos, pos+4, vY4);
153             vData = data.toString();
154         }
155         pos = vData.toUpperCase().indexOf("YY");
156         if (pos != -1)
157         {
158             data = data.replace(pos, pos+2, vY2);
159             vData = data.toString();
160         }
161         pos = vData.toUpperCase().indexOf("MONTH");
162         if (pos != -1)
163         {
164             data = data.replace(pos, pos+5, vFMon);
165             vData = data.toString();
166         }
167         pos = vData.toUpperCase().indexOf("MON");
168         if (pos != -1)
169         {
170             data = data.replace(pos, pos+3, vMon);
171             vData = data.toString();
172         }
173         pos = vData.toUpperCase().indexOf("HH:MM");
174         if (pos != -1)
175         {
176             int pos2 = vData.toUpperCase().indexOf("TT");
177             if (pos2 != -1)
178             {
179                 data = data.replace(pos2, pos2+2, vTT);
180                 data = data.replace(pos, pos+5, vT12);
181                 vData = data.toString();
182             }
183             else
184             {
185                 data = data.replace(pos, pos+5, vT24);
186                 vData = data.toString();
187             }
188
189         }
190
191         pos = vData.toUpperCase().indexOf("MM");
192         if (pos != -1)
193         {
194             data = data.replace(pos, pos+2, vMonth);
195             vData = data.toString();
196         }
197         pos = vData.toUpperCase().indexOf("DD");
198         if (pos != -1)
199         {
200             data = data.replace(pos, pos+2, vDD);
201             vData = data.toString();
202         }
203         vData = data.toString();
204         return vData;
205     }
206 }
Popular Tags