calendar = new GregorianCalendar();
if (value instanceof Date) {
calendar.setTime((Date) value);
}
}
CalendarModel model = new CalendarModel(calendar);
// rendering:
TobagoResponseWriter writer = (TobagoResponseWriter) facesContext.getResponseWriter();
writer.startElement(HtmlConstants.TABLE, component);
writer.writeIdAttribute(id);
writer.writeComponentClass();
writer.writeAttribute(HtmlAttributes.CELLSPACING, "0", null);
writer.writeAttribute(HtmlAttributes.CELLPADDING, "3", null);
writer.writeAttribute(HtmlAttributes.SUMMARY, "", null);
writer.startElement(HtmlConstants.TR, null);
writer.writeClassAttribute("tobago-calendar-header-tr");
writer.startElement(HtmlConstants.TH, null);
writer.writeAttribute(HtmlAttributes.COLSPAN, "7", null);
writer.startElement(HtmlConstants.TABLE, null);
writer.writeAttribute(HtmlAttributes.SUMMARY, "", null);
writer.writeClassAttribute("tobago-calendar-header");
writer.startElement(HtmlConstants.TR, null);
writer.startElement(HtmlConstants.TD, null);
writer.writeAttribute(HtmlAttributes.ALIGN, "left", null);
writer.startElement(HtmlConstants.IMG, null);
writer.writeClassAttribute("tobago-calendar-header");
writer.writeAttribute(HtmlAttributes.ALT, "", null);
writer.writeAttribute(HtmlAttributes.SRC,
ResourceManagerUtil.getImageWithPath(facesContext, "image/calendarFastPrev.gif"), null);
writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', -12)", null);
writer.endElement(HtmlConstants.IMG);
writer.endElement(HtmlConstants.TD);
writer.startElement(HtmlConstants.TD, null);
writer.writeAttribute(HtmlAttributes.ALIGN, "left", null);
writer.startElement(HtmlConstants.IMG, null);
writer.writeClassAttribute("tobago-calendar-header");
writer.writeAttribute(HtmlAttributes.ALT, "", null);
writer.writeAttribute(HtmlAttributes.SRC,
ResourceManagerUtil.getImageWithPath(facesContext, "image/calendarPrev.gif"), null);
writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', -1)", null);
writer.endElement(HtmlConstants.IMG);
writer.endElement(HtmlConstants.TD);
writer.startElement(HtmlConstants.TH, null);
writer.writeClassAttribute("tobago-calendar-header-center");
writer.writeAttribute(HtmlAttributes.ALIGN, "center", null);
writer.writeIdAttribute(id + ":title");
writer.writeText(dateFormat.format(calendar.getTime()), null);
writer.endElement(HtmlConstants.TH);
writer.startElement(HtmlConstants.TD, null);
writer.writeAttribute(HtmlAttributes.ALIGN, "right", null);
writer.startElement(HtmlConstants.IMG, null);
writer.writeClassAttribute("tobago-calendar-header");
writer.writeAttribute(HtmlAttributes.ALT, "", null);
writer.writeAttribute(HtmlAttributes.SRC,
ResourceManagerUtil.getImageWithPath(facesContext, "image/calendarNext.gif"), null);
writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', 1)", null);
writer.endElement(HtmlConstants.IMG);
writer.endElement(HtmlConstants.TD);
writer.startElement(HtmlConstants.TD, null);
writer.writeAttribute(HtmlAttributes.ALIGN, "right", null);
writer.startElement(HtmlConstants.IMG, null);
writer.writeClassAttribute("tobago-calendar-header");
writer.writeAttribute(HtmlAttributes.ALT, "", null);
writer.writeAttribute(HtmlAttributes.SRC,
ResourceManagerUtil.getImageWithPath(facesContext, "image/calendarFastNext.gif"), null);
writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', 12)", null);
writer.endElement(HtmlConstants.IMG);
writer.endElement(HtmlConstants.TD);
writer.endElement(HtmlConstants.TR);
writer.endElement(HtmlConstants.TABLE);
writer.endElement(HtmlConstants.TH);
writer.endElement(HtmlConstants.TR);
writer.startElement(HtmlConstants.TR, null);
dateFormat = new SimpleDateFormat("E", locale);
for (int dayIt = 0; dayIt < 7; ++dayIt) {
DateModel date = model.getDate(0, dayIt);
String dayName = dateFormat.format(date.getCalendar().getTime());
dayName = StringUtils.substring(dayName, 0, 2);
writer.startElement(HtmlConstants.TH, null);
writer.writeClassAttribute("tobago-calendar-inner-header");
writer.writeText(dayName, null);
writer.endElement(HtmlConstants.TH);
}
writer.endElement(HtmlConstants.TR);
// int weekCount = model.getWeekCount();
for (int week = 0; week < 6; ++week) {
// String style = (week < weekCount) ? "" : "style=\"display: none\"";
writer.startElement(HtmlConstants.TR, null);
writer.writeIdAttribute(id + ":" + week);
// writer.writeAttribute(HtmlAttributes.STYLE, style, null);
for (int dayIt = 0; dayIt < 7; ++dayIt) {
// if (week < weekCount) {
DateModel date = model.getDate(week, dayIt);
String dayDescription = String.valueOf(date.getDay());
String onclick = "selectDay('" + id + "', " + week + " , " + dayIt + ");";
writer.startElement(HtmlConstants.TD, null);
writer.writeAttribute(HtmlAttributes.ONCLICK, onclick, null);