1 31 package org.blojsom.plugin.calendar; 32 33 import org.blojsom.util.BlojsomUtils; 34 35 import java.util.Calendar ; 36 37 45 public class VelocityHelper { 46 47 private BlogCalendar _calendar; 48 49 private String [][] visualcalendar = new String [6][7]; 51 52 private static final String VTL_SPACER = " "; 53 54 private String HREF_PREFIX = "<a HREF=\""; 55 private String HREF_SUFFIX = "</a>"; 56 private String _today = "Today"; 57 58 61 public VelocityHelper() { 62 } 63 64 69 public VelocityHelper(BlogCalendar calendar) { 70 _calendar = calendar; 71 } 72 73 78 public void setCalendar(BlogCalendar calendar) { 79 _calendar = calendar; 80 } 81 82 87 public BlogCalendar getBlogCalendar() { 88 return _calendar; 89 } 90 91 94 public void buildCalendar() { 95 int fdow = _calendar.getFirstDayOfMonth() - _calendar.getCalendar().getFirstDayOfWeek(); 96 if (fdow == -1) { 97 fdow = 6; 98 } 99 int ldom = _calendar.getDaysInMonth(); 100 int dowoffset = 0; 101 for (int x = 0; x < 6; x++) { 102 for (int y = 0; y < 7; y++) { 103 if ((x == 0 && y < fdow) || (dowoffset >= ldom)) { 104 visualcalendar[x][y] = VTL_SPACER; 105 } else { 106 dowoffset += 1; 107 if (!_calendar.dayHasEntry(dowoffset)) { 108 visualcalendar[x][y] = new Integer (dowoffset).toString(); 109 } else { 110 StringBuffer _url = new StringBuffer (HREF_PREFIX); 111 String _calurl = BlojsomUtils.getCalendarNavigationUrl(_calendar.getCalendarUrl(), (_calendar.getCurrentMonth() + 1), dowoffset, _calendar.getCurrentYear()); 112 _url.append(_calurl); 113 _url.append("\"><span>").append(dowoffset).append("</span>").append(HREF_SUFFIX); 114 visualcalendar[x][y] = _url.toString(); 115 } 116 117 } 118 } 119 } 120 } 121 122 129 public String getCalendarRow(int row) { 130 return getCalendarRow(row, null); 131 } 132 133 141 public String getCalendarRow(int row, String clazz) { 142 StringBuffer result = new StringBuffer (); 143 if (row > 0 && row <= visualcalendar.length) { 144 for (int x = 0; x < 7; x++) { 145 if (clazz != null) { 146 result.append("<td class=\"").append(clazz).append("\">").append(visualcalendar[row - 1][x]).append("</td>"); 147 } else { 148 result.append("<td>").append(visualcalendar[row - 1][x]).append("</td>"); 149 } 150 } 151 } 152 return result.toString(); 153 } 154 155 160 public String getToday() { 161 StringBuffer result = new StringBuffer (); 162 result.append(HREF_PREFIX).append(_calendar.getCalendarUrl()).append("\">").append(_calendar.getShortMonthName(_calendar.getCurrentMonth())).append(HREF_SUFFIX); 163 return result.toString(); 164 } 165 166 171 public String getPreviousMonth() { 172 StringBuffer result = new StringBuffer (); 173 _calendar.getCalendar().add(Calendar.MONTH, -1); 174 result.append(HREF_PREFIX); 175 String prevurl = BlojsomUtils.getCalendarNavigationUrl(_calendar.getCalendarUrl(), 176 (_calendar.getCalendar().get(Calendar.MONTH) + 1), 177 -1, _calendar.getCalendar().get(Calendar.YEAR)); 178 result.append(prevurl); 179 result.append("\"> <").append(VTL_SPACER).append(VTL_SPACER); 180 result.append(_calendar.getShortMonthName(_calendar.getCalendar().get(Calendar.MONTH))); 181 result.append(HREF_SUFFIX); 182 _calendar.getCalendar().add(Calendar.MONTH, 1); 183 return result.toString(); 184 } 185 186 191 public String getNextMonth() { 192 StringBuffer result = new StringBuffer (); 193 _calendar.getCalendar().add(Calendar.MONTH, 1); 194 195 result.append(HREF_PREFIX); 196 String nexturl = BlojsomUtils.getCalendarNavigationUrl(_calendar.getCalendarUrl(), 197 (_calendar.getCalendar().get(Calendar.MONTH) + 1), 198 -1, _calendar.getCalendar().get(Calendar.YEAR)); 199 200 result.append(nexturl); 201 result.append("\"> "); 202 result.append(_calendar.getShortMonthName(_calendar.getCalendar().get(Calendar.MONTH))); 203 result.append(VTL_SPACER).append(VTL_SPACER).append(">").append(HREF_SUFFIX); 204 _calendar.getCalendar().add(Calendar.MONTH, -1); 205 206 return result.toString(); 207 } 208 209 214 public String getPreviousMonthLink() { 215 216 StringBuffer result = new StringBuffer (); 217 _calendar.getCalendar().add(Calendar.MONTH, -1); 218 219 String prevurl = 220 BlojsomUtils.getCalendarNavigationUrl(_calendar.getCalendarUrl(), 221 (_calendar.getCalendar().get(Calendar.MONTH) + 1), 222 -1, _calendar.getCalendar().get(Calendar.YEAR)); 223 224 result.append(prevurl); 225 _calendar.getCalendar().add(Calendar.MONTH, 1); 226 227 return result.toString(); 228 } 229 230 235 public String getPreviousMonthName() { 236 StringBuffer result = new StringBuffer (); 237 _calendar.getCalendar().add(Calendar.MONTH, -1); 238 239 result.append(_calendar.getMonthName(_calendar.getCalendar().get(Calendar.MONTH))); 240 _calendar.getCalendar().add(Calendar.MONTH, 1); 241 242 return result.toString(); 243 } 244 245 250 public String getCurrentMonthLink() { 251 252 StringBuffer result = new StringBuffer (); 253 result.append(_calendar.getCalendarUrl()); 254 255 return result.toString(); 256 } 257 258 263 public String getCurrentMonthName() { 264 StringBuffer result = new StringBuffer (); 265 266 result.append(_calendar.getMonthName(_calendar.getCalendar().get(Calendar.MONTH))); 267 268 return result.toString(); 269 } 270 271 272 277 public String getNextMonthLink() { 278 279 StringBuffer result = new StringBuffer (); 280 _calendar.getCalendar().add(Calendar.MONTH, 1); 281 282 String nexturl = 283 BlojsomUtils.getCalendarNavigationUrl(_calendar.getCalendarUrl(), 284 (_calendar.getCalendar().get(Calendar.MONTH) + 1), 285 -1, _calendar.getCalendar().get(Calendar.YEAR)); 286 287 result.append(nexturl); 288 _calendar.getCalendar().add(Calendar.MONTH, -1); 289 290 return result.toString(); 291 } 292 293 298 public String getNextMonthName() { 299 StringBuffer result = new StringBuffer (); 300 _calendar.getCalendar().add(Calendar.MONTH, 1); 301 302 result.append(_calendar.getMonthName(_calendar.getCalendar().get(Calendar.MONTH))); 303 _calendar.getCalendar().add(Calendar.MONTH, -1); 304 305 return result.toString(); 306 } 307 308 313 public void setTodayText(String today) { 314 _today = today; 315 } 316 317 322 public String getTodayText() { 323 return _today; 324 } 325 } 326 | Popular Tags |