1 31 package org.blojsom.plugin.calendar; 32 33 import org.blojsom.util.BlojsomUtils; 34 35 import java.text.DateFormatSymbols ; 36 import java.util.Arrays ; 37 import java.util.Calendar ; 38 import java.util.Date ; 39 import java.util.Locale ; 40 41 49 public class BlogCalendar { 50 51 private Calendar _calendar; 52 private Calendar _today; 53 private DateFormatSymbols _symbols; 54 private Locale _locale; 55 private Boolean [] _dayswithentry; 56 private String [] _shortdownames; 57 private String _blogURL; 58 private int currentmonth; 59 private int currentyear; 60 private int currentday; 61 private String _requestedDateKey; 62 63 69 public BlogCalendar(Calendar calendar, String blogurl) { 70 this(calendar, blogurl, Locale.getDefault()); 71 } 72 73 80 public BlogCalendar(Calendar calendar, String blogurl, Locale locale) { 81 _locale = locale; 82 _calendar = calendar; 83 _today = Calendar.getInstance(_locale); 84 _today.setTime(new Date ()); 85 _symbols = new DateFormatSymbols (_locale); 86 _blogURL = blogurl; 87 88 currentmonth = calendar.get(Calendar.MONTH); 89 currentyear = calendar.get(Calendar.YEAR); 90 currentday = calendar.get(Calendar.DAY_OF_MONTH); 91 92 _dayswithentry = new Boolean [_calendar.getActualMaximum(Calendar.DAY_OF_MONTH)]; 93 Arrays.fill(_dayswithentry, Boolean.FALSE); 94 95 _shortdownames = new String [7]; 96 String [] downames = _symbols.getShortWeekdays(); 97 98 if (_calendar.getFirstDayOfWeek() == Calendar.SUNDAY) { 99 for (int x = 0; x < _shortdownames.length; x++) { 100 _shortdownames[x] = downames[x + 1]; 101 } 102 } else { 103 for (int x = 2; x <= _shortdownames.length; x++) { 104 _shortdownames[x - 2] = downames[x]; 105 } 106 107 _shortdownames[6] = downames[1]; 108 } 109 } 110 111 116 public String getCaption() { 117 return BlojsomUtils.getFormattedDate(_calendar.getTime(), AbstractCalendarPlugin.BLOJSOM_CALENDAR_FORMAT, _locale); 118 } 119 120 125 public int getFirstDayOfMonth() { 126 _calendar.set(Calendar.DAY_OF_MONTH, 1); 127 return _calendar.get(Calendar.DAY_OF_WEEK); 128 } 129 130 135 public int getDaysInMonth() { 136 return _calendar.getActualMaximum(Calendar.DAY_OF_MONTH); 137 } 138 139 144 public void setEntryForDOM(int dom) { 145 if (dom > 0 && dom <= _dayswithentry.length) { 146 _dayswithentry[dom - 1] = Boolean.valueOf(true); 147 } 148 } 149 150 155 public void removeEntryForDOM(int dom) { 156 if (dom > 0 && dom <= _dayswithentry.length) { 157 _dayswithentry[dom - 1] = Boolean.valueOf(false); 158 } 159 } 160 161 167 public boolean dayHasEntry(int dom) { 168 boolean result = false; 169 if (dom > 0 && dom <= _dayswithentry.length) { 170 result = _dayswithentry[dom - 1].booleanValue(); 171 } 172 return result; 173 } 174 175 180 public Boolean [] getEntryDates() { 181 return _dayswithentry; 182 } 183 184 190 public String getMonthName(int month) { 191 return getMonthNames()[month]; 192 } 193 194 199 public String [] getMonthNames() { 200 return _symbols.getMonths(); 201 } 202 203 209 public String getShortMonthName(int month) { 210 return getShortMonthNames()[month]; 211 } 212 213 218 public String [] getShortMonthNames() { 219 return _symbols.getShortMonths(); 220 } 221 222 228 public String getDayOfWeekName(int dow) { 229 return getDayOfWeekNames()[dow]; 230 } 231 232 237 public String [] getDayOfWeekNames() { 238 return _symbols.getWeekdays(); 239 } 240 241 247 public String getShortDayOfWeekName(int dow) { 248 return _shortdownames[dow - 1]; 249 } 250 251 256 public String [] getShortDayOfWeekNames() { 257 return _shortdownames; 258 } 259 260 265 public String getCalendarUrl() { 266 return _blogURL; 267 } 268 269 274 public Calendar getCalendar() { 275 return _calendar; 276 } 277 278 283 public Calendar getToday() { 284 return _today; 285 } 286 287 292 public int getCurrentMonth() { 293 return currentmonth; 294 } 295 296 301 public void setCurrentMonth(int currentmonth) { 302 this.currentmonth = currentmonth; 303 _calendar.set(Calendar.MONTH, currentmonth); 304 } 305 306 311 public int getCurrentYear() { 312 return currentyear; 313 314 } 315 316 321 public void setCurrentYear(int currentyear) { 322 this.currentyear = currentyear; 323 _calendar.set(Calendar.YEAR, currentyear); 324 } 325 326 331 public int getCurrentDay() { 332 return currentday; 333 } 334 335 340 public void setCurrentDay(int currentday) { 341 this.currentday = currentday; 342 _calendar.set(Calendar.DAY_OF_MONTH, currentday); 343 } 344 345 350 public String getRequestedDateKey() { 351 return _requestedDateKey; 352 } 353 354 359 public void setRequestedDateKey(String requestedDateKey) { 360 _requestedDateKey = requestedDateKey; 361 } 362 } 363 364 | Popular Tags |