1 13 package org.jahia.views.engines.datepicker; 14 15 import java.lang.reflect.InvocationTargetException ; 16 import java.util.Calendar ; 17 import java.util.Date ; 18 import java.util.HashMap ; 19 import java.util.Iterator ; 20 import java.util.TimeZone ; 21 import java.util.Vector ; 22 23 public class DatePicker { 24 25 private static DatePicker datePicker; 26 private HashMap listeners = new HashMap (); 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 name, DatePickerEventListener listener){ 38 if ( name != null && listener != null ){ 39 listeners.put(name, listener); 40 } 41 } 42 43 public DatePickerEventListener getListener(String name){ 44 return (DatePickerEventListener)listeners.get(name); 45 } 46 47 public void removeListener(String name){ 48 listeners.remove(name); 49 } 50 51 public void wakeupListener(String methodName, DatePickerEvent ev){ 52 Iterator iterator = listeners.values().iterator(); 53 while ( iterator.hasNext() ){ 54 DatePickerEventListener listener = 55 (DatePickerEventListener)iterator.next(); 56 try { 57 Class lClass = listener.getClass(); 58 Class eClass = ev.getClass(); 59 java.lang.reflect.Method method = 60 lClass.getMethod( methodName, new Class [] { eClass } ); 61 if (method != null) { 62 method.invoke( listener, 63 new Object [] { (org.jahia.views.engines.datepicker.DatePickerEvent)ev } ); 64 } 65 } catch (NoSuchMethodException nsme) { 66 nsme.printStackTrace(); 67 } catch (InvocationTargetException ite) { 68 ite.printStackTrace(); 69 } catch (IllegalAccessException iae) { 70 iae.printStackTrace(); 71 } 72 } 73 } 74 75 81 public static String getDate(long date){ 82 83 Vector months = new Vector (); 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 vData = "DD MONTH YYYY"; 98 long t1 = date; 99 100 TimeZone tz = TimeZone.getTimeZone("UTC"); 101 Calendar cal = Calendar.getInstance(tz); 102 cal.setTime(new Date (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 vMonth = new String (); 111 vMonth = String.valueOf(1 + mon); 112 vMonth = (vMonth.length() < 2) ? "0" + vMonth : vMonth; 113 String vMon = ((String )months.get(mon)).substring(0,3); 114 String vFMon = (String )months.get(mon); 115 String vY4 = new String (); 116 vY4 = String.valueOf(year); 117 String vY2 = new String (); 118 vY2 = vY4.substring(2,4); 119 String vDD = new String (); 120 vDD = String.valueOf(day); 121 vDD = (vDD.length() < 2) ? "0" + vDD : vDD; 122 String h24 = String.valueOf(hour); 123 String h12; 124 String 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 m = String.valueOf(min); 144 m = (m.length() < 2) ? "0" + m : m; 145 String vT24 = h24 + ":" + m; 146 String vT12 = h12 + ":" + m; 147 148 StringBuffer data = new StringBuffer (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 |