Package org.apache.myfaces.tobago.model

Examples of org.apache.myfaces.tobago.model.CalendarModel


      calendar = new GregorianCalendar();
      if (value instanceof Date) {
        calendar.setTime((Date) value);
      }
    }
    CalendarModel model = new CalendarModel(calendar);

    // rendering
    TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);

    writer.startElement(HtmlElements.DIV, component);
    writer.writeIdAttribute(id);
    writer.writeClassAttribute(Classes.create(output));
    HtmlRendererUtils.writeDataAttributes(facesContext, writer, component);
    Style style = new Style(facesContext, output);
    writer.writeStyleAttribute(style);
    String dateInputId = (String) output.getAttributes().get(Attributes.DATE_INPUT_ID);
    if (dateInputId != null) {
      writer.writeAttribute(DataAttributes.DATE_INPUT_ID, dateInputId, false);
    }
    writer.writeAttribute(DataAttributes.DAY, Integer.toString(calendar.get(Calendar.YEAR)), false);
    writer.writeAttribute(DataAttributes.MONTH, Integer.toString(1 + calendar.get(Calendar.MONTH)), false);
    writer.writeAttribute(DataAttributes.YEAR, Integer.toString(calendar.get(Calendar.DAY_OF_MONTH)), false);

    writer.writeAttribute(DataAttributes.FIRST_DAY_OF_WEEK, Integer.toString(calendar.getFirstDayOfWeek()), false);
    writer.writeAttribute(DataAttributes.MONTH_NAMES, getMonthNames(locale), false);

    // begin header
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "row"));

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastPrev.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "fastPrev", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarPrev.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "prev", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeClassAttribute(Classes.create(output, "header"));

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeAttribute(DataAttributes.COMMAND, "month", false);
    writer.writeText(new SimpleDateFormat("MMMMM", locale).format(calendar.getTime()));
    writer.endElement(HtmlElements.SPAN);

    writer.writeText(" "); // non breaking space

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeAttribute(DataAttributes.COMMAND, "year", false);
    writer.writeText(new SimpleDateFormat("yyyy", locale).format(calendar.getTime()));
    writer.endElement(HtmlElements.SPAN);

    writer.endElement(HtmlElements.SPAN);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarNext.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "next", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastNext.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "fastNext", false);
    writer.endElement(HtmlElements.IMG);

    writer.endElement(HtmlElements.DIV);
    // end header

    // begin weeks
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "row"));

    SimpleDateFormat dayInWeekFormat = new SimpleDateFormat("E", locale);
    for (int dayIt = 0; dayIt < 7; ++dayIt) {
      DateModel date = model.getDate(0, dayIt);
      String dayName = dayInWeekFormat.format(date.getCalendar().getTime());
      dayName = StringUtils.substring(dayName, 0, 2);

      writer.startElement(HtmlElements.SPAN, null);
      writer.writeClassAttribute(Classes.create(output, "dayOfWeek"));
      writer.writeText(dayName);
      writer.endElement(HtmlElements.SPAN);
    }

    writer.endElement(HtmlElements.DIV);
    // end weeks

    // begin grid
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "grid"));
    for (int week = 0; week < 6; ++week) {
      writer.startElement(HtmlElements.DIV, null);
      writer.writeClassAttribute(Classes.create(output, "row"));

      for (int dayIt = 0; dayIt < 7; ++dayIt) {
        DateModel date = model.getDate(week, dayIt);
        String dayDescription = String.valueOf(date.getDay());

        writer.startElement(HtmlElements.SPAN, null);
        writer.writeClassAttribute(
            Classes.create(output, "day", date.getMonth() == model.getMonth() ? null : Markup.DISABLED));

        writer.writeText(dayDescription);

        writer.endElement(HtmlElements.SPAN);
      }
View Full Code Here


      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);
View Full Code Here

      calendar = new GregorianCalendar();
      if (value instanceof Date) {
        calendar.setTime((Date) value);
      }
    }
    CalendarModel model = new CalendarModel(calendar);

    // rendering
    TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);

    writer.startElement(HtmlElements.DIV, component);
    writer.writeIdAttribute(id);
    writer.writeClassAttribute(Classes.create(output));
    Style style = new Style(facesContext, output);
    writer.writeStyleAttribute(style);

    // begin header
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "row"));

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastPrev.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', -12)", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarPrev.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', -1)", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeIdAttribute(id + ":title"); // todo: ComponentUtils.SUB_SEPARATOR
    writer.writeText(dateFormat.format(calendar.getTime()));
    writer.endElement(HtmlElements.SPAN);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarNext.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', 1)", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastNext.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', 12)", false);
    writer.endElement(HtmlElements.IMG);

    writer.endElement(HtmlElements.DIV);
    // end header

    // begin weeks
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "row"));

    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(HtmlElements.SPAN, null);
      writer.writeClassAttribute(Classes.create(output, "dayOfWeek"));
      writer.writeText(dayName);
      writer.endElement(HtmlElements.SPAN);
    }

    writer.endElement(HtmlElements.DIV);
    // end weeks

//    int weekCount = model.getWeekCount();
    for (int week = 0; week < 6; ++week) {
//    String style = (week < weekCount) ? "" : "style=\"display: none\"";
      writer.startElement(HtmlElements.DIV, null);
      writer.writeIdAttribute(id + ":" + week);
      writer.writeClassAttribute(Classes.create(output, "row"));
//      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(HtmlElements.SPAN, null);
        writer.writeAttribute(HtmlAttributes.ONCLICK, onclick, true);
        writer.writeIdAttribute(id + ":" + week + ":" + dayIt);
        writer.writeClassAttribute(
            Classes.create(output, "day", date.getMonth() == model.getMonth() ? null : Markup.DISABLED));

        writer.writeText(dayDescription);

        writer.endElement(HtmlElements.SPAN);
View Full Code Here

      calendar = new GregorianCalendar();
      if (value instanceof Date) {
        calendar.setTime((Date) value);
      }
    }
    CalendarModel model = new CalendarModel(calendar);

    // rendering:

    TobagoResponseWriter writer = HtmlRendererUtil.getTobagoResponseWriter(facesContext);

    writer.startElement(HtmlConstants.TABLE, component);
    writer.writeIdAttribute(id);
    writer.writeClassAttribute();
    writer.writeAttribute(HtmlAttributes.CELLSPACING, 0);
    writer.writeAttribute(HtmlAttributes.CELLPADDING, 3);
    writer.writeAttribute(HtmlAttributes.SUMMARY, "", false);

    writer.startElement(HtmlConstants.TR, null);
    writer.writeClassAttribute("tobago-calendar-header-tr");
    writer.startElement(HtmlConstants.TH, null);
    writer.writeAttribute(HtmlAttributes.COLSPAN, 7);

    writer.startElement(HtmlConstants.TABLE, null);
    writer.writeAttribute(HtmlAttributes.SUMMARY, "", false);
    writer.writeClassAttribute("tobago-calendar-header");
    writer.startElement(HtmlConstants.TR, null);

    writer.startElement(HtmlConstants.TD, null);
    writer.writeAttribute(HtmlAttributes.ALIGN, "left", false);
    writer.startElement(HtmlConstants.IMG, null);
    writer.writeClassAttribute("tobago-calendar-header");
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtil.getImageWithPath(facesContext, "image/calendarFastPrev.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', -12)", false);
    writer.endElement(HtmlConstants.IMG);
    writer.endElement(HtmlConstants.TD);

    writer.startElement(HtmlConstants.TD, null);
    writer.writeAttribute(HtmlAttributes.ALIGN, "left", false);
    writer.startElement(HtmlConstants.IMG, null);
    writer.writeClassAttribute("tobago-calendar-header");
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtil.getImageWithPath(facesContext, "image/calendarPrev.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', -1)", false);
    writer.endElement(HtmlConstants.IMG);
    writer.endElement(HtmlConstants.TD);

    writer.startElement(HtmlConstants.TH, null);
    writer.writeClassAttribute("tobago-calendar-header-center");
    writer.writeAttribute(HtmlAttributes.ALIGN, "center", false);
    writer.writeIdAttribute(id + ":title");
    writer.writeText(dateFormat.format(calendar.getTime()));
    writer.endElement(HtmlConstants.TH);

    writer.startElement(HtmlConstants.TD, null);
    writer.writeAttribute(HtmlAttributes.ALIGN, "right", false);
    writer.startElement(HtmlConstants.IMG, null);
    writer.writeClassAttribute("tobago-calendar-header");
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtil.getImageWithPath(facesContext, "image/calendarNext.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', 1)", false);
    writer.endElement(HtmlConstants.IMG);
    writer.endElement(HtmlConstants.TD);

    writer.startElement(HtmlConstants.TD, null);
    writer.writeAttribute(HtmlAttributes.ALIGN, "right", false);
    writer.startElement(HtmlConstants.IMG, null);
    writer.writeClassAttribute("tobago-calendar-header");
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtil.getImageWithPath(facesContext, "image/calendarFastNext.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', 12)", false);
    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);
      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, true);
View Full Code Here

      calendar = new GregorianCalendar();
      if (value instanceof Date) {
        calendar.setTime((Date) value);
      }
    }
    CalendarModel model = new CalendarModel(calendar);

    // rendering:

    TobagoResponseWriter writer = HtmlRendererUtil.getTobagoResponseWriter(facesContext);

    writer.startElement(HtmlConstants.TABLE, component);
    writer.writeIdAttribute(id);
    writer.writeClassAttribute();
    writer.writeAttribute(HtmlAttributes.CELLSPACING, 0);
    writer.writeAttribute(HtmlAttributes.CELLPADDING, 3);
    writer.writeAttribute(HtmlAttributes.SUMMARY, "", false);

    writer.startElement(HtmlConstants.TR, null);
    writer.writeClassAttribute("tobago-calendar-header-tr");
    writer.startElement(HtmlConstants.TH, null);
    writer.writeAttribute(HtmlAttributes.COLSPAN, 7);

    writer.startElement(HtmlConstants.TABLE, null);
    writer.writeAttribute(HtmlAttributes.SUMMARY, "", false);
    writer.writeClassAttribute("tobago-calendar-header");
    writer.startElement(HtmlConstants.TR, null);

    writer.startElement(HtmlConstants.TD, null);
    writer.writeAttribute(HtmlAttributes.ALIGN, "left", false);
    writer.startElement(HtmlConstants.IMG, null);
    writer.writeClassAttribute("tobago-calendar-header");
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtil.getImageWithPath(facesContext, "image/calendarFastPrev.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', -12)", false);
    writer.endElement(HtmlConstants.IMG);
    writer.endElement(HtmlConstants.TD);

    writer.startElement(HtmlConstants.TD, null);
    writer.writeAttribute(HtmlAttributes.ALIGN, "left", false);
    writer.startElement(HtmlConstants.IMG, null);
    writer.writeClassAttribute("tobago-calendar-header");
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtil.getImageWithPath(facesContext, "image/calendarPrev.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', -1)", false);
    writer.endElement(HtmlConstants.IMG);
    writer.endElement(HtmlConstants.TD);

    writer.startElement(HtmlConstants.TH, null);
    writer.writeClassAttribute("tobago-calendar-header-center");
    writer.writeAttribute(HtmlAttributes.ALIGN, "center", false);
    writer.writeIdAttribute(id + ":title");
    writer.writeText(dateFormat.format(calendar.getTime()));
    writer.endElement(HtmlConstants.TH);

    writer.startElement(HtmlConstants.TD, null);
    writer.writeAttribute(HtmlAttributes.ALIGN, "right", false);
    writer.startElement(HtmlConstants.IMG, null);
    writer.writeClassAttribute("tobago-calendar-header");
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtil.getImageWithPath(facesContext, "image/calendarNext.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', 1)", false);
    writer.endElement(HtmlConstants.IMG);
    writer.endElement(HtmlConstants.TD);

    writer.startElement(HtmlConstants.TD, null);
    writer.writeAttribute(HtmlAttributes.ALIGN, "right", false);
    writer.startElement(HtmlConstants.IMG, null);
    writer.writeClassAttribute("tobago-calendar-header");
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtil.getImageWithPath(facesContext, "image/calendarFastNext.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', 12)", false);
    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);
      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, true);
View Full Code Here

      calendar = new GregorianCalendar();
      if (value instanceof Date) {
        calendar.setTime((Date) value);
      }
    }
    CalendarModel model = new CalendarModel(calendar);

    // rendering
    TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);

    writer.startElement(HtmlElements.DIV, component);
    writer.writeIdAttribute(id);
    writer.writeClassAttribute(Classes.create(output));
    Style style = new Style(facesContext, output);
    writer.writeStyleAttribute(style);

    // begin header
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "row"));

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastPrev.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', -12)", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarPrev.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', -1)", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeIdAttribute(id + ":title"); // todo: ComponentUtils.SUB_SEPARATOR
    writer.writeText(dateFormat.format(calendar.getTime()));
    writer.endElement(HtmlElements.SPAN);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarNext.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', 1)", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastNext.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', 12)", false);
    writer.endElement(HtmlElements.IMG);

    writer.endElement(HtmlElements.DIV);
    // end header

    // begin weeks
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "row"));

    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(HtmlElements.SPAN, null);
      writer.writeClassAttribute(Classes.create(output, "dayOfWeek"));
      writer.writeText(dayName);
      writer.endElement(HtmlElements.SPAN);
    }

    writer.endElement(HtmlElements.DIV);
    // end weeks

//    int weekCount = model.getWeekCount();
    for (int week = 0; week < 6; ++week) {
//    String style = (week < weekCount) ? "" : "style=\"display: none\"";
      writer.startElement(HtmlElements.DIV, null);
      writer.writeIdAttribute(id + ":" + week);
      writer.writeClassAttribute(Classes.create(output, "row"));
//      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(HtmlElements.SPAN, null);
        writer.writeAttribute(HtmlAttributes.ONCLICK, onclick, true);
        writer.writeIdAttribute(id + ":" + week + ":" + dayIt);
        writer.writeClassAttribute(
            Classes.create(output, "day", date.getMonth() == model.getMonth() ? null : Markup.DISABLED));

        writer.writeText(dayDescription);

        writer.endElement(HtmlElements.SPAN);
View Full Code Here

      calendar = new GregorianCalendar();
      if (value instanceof Date) {
        calendar.setTime((Date) value);
      }
    }
    final CalendarModel model = new CalendarModel(calendar);

    // rendering
    final TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);

    writer.startElement(HtmlElements.DIV, component);
    writer.writeIdAttribute(id);
    writer.writeClassAttribute(Classes.create(output));
    HtmlRendererUtils.writeDataAttributes(facesContext, writer, component);
    final Style style = new Style(facesContext, output);
    writer.writeStyleAttribute(style);
    final String dateInputId = (String) output.getAttributes().get(Attributes.DATE_INPUT_ID);
    if (dateInputId != null) {
      writer.writeAttribute(DataAttributes.DATE_INPUT_ID, dateInputId, false);
    }
    writer.writeAttribute(DataAttributes.DAY, Integer.toString(calendar.get(Calendar.YEAR)), false);
    writer.writeAttribute(DataAttributes.MONTH, Integer.toString(1 + calendar.get(Calendar.MONTH)), false);
    writer.writeAttribute(DataAttributes.YEAR, Integer.toString(calendar.get(Calendar.DAY_OF_MONTH)), false);

    writer.writeAttribute(DataAttributes.FIRST_DAY_OF_WEEK, Integer.toString(calendar.getFirstDayOfWeek()), false);
    writer.writeAttribute(DataAttributes.MONTH_NAMES, getMonthNames(locale), false);

    // begin header
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "row"));

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastPrev.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "fastPrev", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarPrev.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "prev", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeClassAttribute(Classes.create(output, "header"));

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeAttribute(DataAttributes.COMMAND, "month", false);
    writer.writeText(new SimpleDateFormat("MMMMM", locale).format(calendar.getTime()));
    writer.endElement(HtmlElements.SPAN);

    writer.writeText(" "); // non breaking space

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeAttribute(DataAttributes.COMMAND, "year", false);
    writer.writeText(new SimpleDateFormat("yyyy", locale).format(calendar.getTime()));
    writer.endElement(HtmlElements.SPAN);

    writer.endElement(HtmlElements.SPAN);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarNext.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "next", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastNext.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "fastNext", false);
    writer.endElement(HtmlElements.IMG);

    writer.endElement(HtmlElements.DIV);
    // end header

    // begin weeks
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "row"));

    final SimpleDateFormat dayInWeekFormat = new SimpleDateFormat("E", locale);
    for (int dayIt = 0; dayIt < 7; ++dayIt) {
      final DateModel date = model.getDate(0, dayIt);
      String dayName = dayInWeekFormat.format(date.getCalendar().getTime());
      if (dayName != null) {
        dayName = dayName.substring(0, 2);
      }

      writer.startElement(HtmlElements.SPAN, null);
      writer.writeClassAttribute(Classes.create(output, "dayOfWeek"));
      writer.writeText(dayName);
      writer.endElement(HtmlElements.SPAN);
    }

    writer.endElement(HtmlElements.DIV);
    // end weeks

    // begin grid
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "grid"));
    for (int week = 0; week < 6; ++week) {
      writer.startElement(HtmlElements.DIV, null);
      writer.writeClassAttribute(Classes.create(output, "row"));

      for (int dayIt = 0; dayIt < 7; ++dayIt) {
        final DateModel date = model.getDate(week, dayIt);
        final String dayDescription = String.valueOf(date.getDay());

        writer.startElement(HtmlElements.SPAN, null);
        writer.writeClassAttribute(
            Classes.create(output, "day", date.getMonth() == model.getMonth() ? null : Markup.DISABLED));

        writer.writeText(dayDescription);

        writer.endElement(HtmlElements.SPAN);
      }
View Full Code Here

      calendar = new GregorianCalendar();
      if (value instanceof Date) {
        calendar.setTime((Date) value);
      }
    }
    final CalendarModel model = new CalendarModel(calendar);

    // rendering
    final TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);

    writer.startElement(HtmlElements.DIV, component);
    writer.writeIdAttribute(id);
    writer.writeClassAttribute(Classes.create(output));
    HtmlRendererUtils.writeDataAttributes(facesContext, writer, component);
    final Style style = new Style(facesContext, output);
    writer.writeStyleAttribute(style);
    final String dateInputId = (String) output.getAttributes().get(Attributes.DATE_INPUT_ID);
    if (dateInputId != null) {
      writer.writeAttribute(DataAttributes.DATE_INPUT_ID, dateInputId, false);
    }
    writer.writeAttribute(DataAttributes.DAY, Integer.toString(calendar.get(Calendar.YEAR)), false);
    writer.writeAttribute(DataAttributes.MONTH, Integer.toString(1 + calendar.get(Calendar.MONTH)), false);
    writer.writeAttribute(DataAttributes.YEAR, Integer.toString(calendar.get(Calendar.DAY_OF_MONTH)), false);

    writer.writeAttribute(DataAttributes.FIRST_DAY_OF_WEEK, Integer.toString(calendar.getFirstDayOfWeek()), false);
    writer.writeAttribute(DataAttributes.MONTH_NAMES, getMonthNames(locale), false);

    // begin header
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "row"));

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastPrev.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "fastPrev", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarPrev.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "prev", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeClassAttribute(Classes.create(output, "header"));

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeAttribute(DataAttributes.COMMAND, "month", false);
    writer.writeText(new SimpleDateFormat("MMMMM", locale).format(calendar.getTime()));
    writer.endElement(HtmlElements.SPAN);

    writer.writeText(" "); // non breaking space

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeAttribute(DataAttributes.COMMAND, "year", false);
    writer.writeText(new SimpleDateFormat("yyyy", locale).format(calendar.getTime()));
    writer.endElement(HtmlElements.SPAN);

    writer.endElement(HtmlElements.SPAN);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarNext.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "next", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastNext.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "fastNext", false);
    writer.endElement(HtmlElements.IMG);

    writer.endElement(HtmlElements.DIV);
    // end header

    // begin weeks
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "row"));

    final SimpleDateFormat dayInWeekFormat = new SimpleDateFormat("E", locale);
    for (int dayIt = 0; dayIt < 7; ++dayIt) {
      final DateModel date = model.getDate(0, dayIt);
      String dayName = dayInWeekFormat.format(date.getCalendar().getTime());
      if (dayName != null) {
        dayName = dayName.substring(0, 2);
      }

      writer.startElement(HtmlElements.SPAN, null);
      writer.writeClassAttribute(Classes.create(output, "dayOfWeek"));
      writer.writeText(dayName);
      writer.endElement(HtmlElements.SPAN);
    }

    writer.endElement(HtmlElements.DIV);
    // end weeks

    // begin grid
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "grid"));
    for (int week = 0; week < 6; ++week) {
      writer.startElement(HtmlElements.DIV, null);
      writer.writeClassAttribute(Classes.create(output, "row"));

      for (int dayIt = 0; dayIt < 7; ++dayIt) {
        final DateModel date = model.getDate(week, dayIt);
        final String dayDescription = String.valueOf(date.getDay());

        writer.startElement(HtmlElements.SPAN, null);
        writer.writeClassAttribute(
            Classes.create(output, "day", date.getMonth() == model.getMonth() ? null : Markup.DISABLED));

        writer.writeText(dayDescription);

        writer.endElement(HtmlElements.SPAN);
      }
View Full Code Here

      calendar = new GregorianCalendar();
      if (value instanceof Date) {
        calendar.setTime((Date) value);
      }
    }
    CalendarModel model = new CalendarModel(calendar);

    // rendering
    TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);

    writer.startElement(HtmlElements.TABLE, component);
    writer.writeIdAttribute(id);
    HtmlRendererUtils.renderDojoDndItem(component, writer, true);
    writer.writeClassAttribute(Classes.create(output));
    Style style = new Style(facesContext, output);
    writer.writeStyleAttribute(style);
    writer.writeAttribute(HtmlAttributes.CELLSPACING, 0);
    writer.writeAttribute(HtmlAttributes.CELLPADDING, 3);
    writer.writeAttribute(HtmlAttributes.SUMMARY, "", false);

    writer.startElement(HtmlElements.TR, null);
    writer.writeClassAttribute(Classes.create(output, "headerRow"));
    writer.startElement(HtmlElements.TH, null);
    writer.writeAttribute(HtmlAttributes.COLSPAN, 7);

    writer.startElement(HtmlElements.TABLE, null);
    writer.writeAttribute(HtmlAttributes.SUMMARY, "", false);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.startElement(HtmlElements.TR, null);

    writer.startElement(HtmlElements.TD, null);
    writer.writeAttribute(HtmlAttributes.ALIGN, "left", false);
    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastPrev.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', -12)", false);
    writer.endElement(HtmlElements.IMG);
    writer.endElement(HtmlElements.TD);

    writer.startElement(HtmlElements.TD, null);
    writer.writeAttribute(HtmlAttributes.ALIGN, "left", false);
    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarPrev.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', -1)", false);
    writer.endElement(HtmlElements.IMG);
    writer.endElement(HtmlElements.TD);

    writer.startElement(HtmlElements.TH, null);
    writer.writeClassAttribute(Classes.create(output, "headerCenter"));
    writer.writeAttribute(HtmlAttributes.ALIGN, "center", false);
    writer.writeIdAttribute(id + ":title");
    writer.writeText(dateFormat.format(calendar.getTime()));
    writer.endElement(HtmlElements.TH);

    writer.startElement(HtmlElements.TD, null);
    writer.writeAttribute(HtmlAttributes.ALIGN, "right", false);
    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarNext.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', 1)", false);
    writer.endElement(HtmlElements.IMG);
    writer.endElement(HtmlElements.TD);

    writer.startElement(HtmlElements.TD, null);
    writer.writeAttribute(HtmlAttributes.ALIGN, "right", false);
    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastNext.gif"), false);
    writer.writeAttribute(HtmlAttributes.ONCLICK, "addMonth('" + id + "', 12)", false);
    writer.endElement(HtmlElements.IMG);
    writer.endElement(HtmlElements.TD);

    writer.endElement(HtmlElements.TR);
    writer.endElement(HtmlElements.TABLE);

    writer.endElement(HtmlElements.TH);
    writer.endElement(HtmlElements.TR);

    writer.startElement(HtmlElements.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(HtmlElements.TH, null);
      writer.writeClassAttribute(Classes.create(output, "headerInner"));
      writer.writeText(dayName);
      writer.endElement(HtmlElements.TH);
    }

    writer.endElement(HtmlElements.TR);

//    int weekCount = model.getWeekCount();
    for (int week = 0; week < 6; ++week) {
//    String style = (week < weekCount) ? "" : "style=\"display: none\"";
      writer.startElement(HtmlElements.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(HtmlElements.TD, null);
        writer.writeAttribute(HtmlAttributes.ONCLICK, onclick, true);
        writer.writeIdAttribute(id + ":" + week + ":" + dayIt);
        writer.writeClassAttribute(
            Classes.create(output, "day", date.getMonth() == model.getMonth() ? null : Markup.DISABLED));

        writer.writeText(dayDescription);

        writer.endElement(HtmlElements.TD);
View Full Code Here

      calendar = new GregorianCalendar();
      if (value instanceof Date) {
        calendar.setTime((Date) value);
      }
    }
    final CalendarModel model = new CalendarModel(calendar);

    // rendering
    final TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);

    writer.startElement(HtmlElements.DIV, component);
    writer.writeIdAttribute(id);
    writer.writeClassAttribute(Classes.create(output));
    HtmlRendererUtils.writeDataAttributes(facesContext, writer, component);
    final Style style = new Style(facesContext, output);
    writer.writeStyleAttribute(style);
    final String dateInputId = (String) output.getAttributes().get(Attributes.DATE_INPUT_ID);
    if (dateInputId != null) {
      writer.writeAttribute(DataAttributes.DATE_INPUT_ID, dateInputId, false);
    }
    writer.writeAttribute(DataAttributes.DAY, Integer.toString(calendar.get(Calendar.YEAR)), false);
    writer.writeAttribute(DataAttributes.MONTH, Integer.toString(1 + calendar.get(Calendar.MONTH)), false);
    writer.writeAttribute(DataAttributes.YEAR, Integer.toString(calendar.get(Calendar.DAY_OF_MONTH)), false);

    writer.writeAttribute(DataAttributes.FIRST_DAY_OF_WEEK, Integer.toString(calendar.getFirstDayOfWeek()), false);
    writer.writeAttribute(DataAttributes.MONTH_NAMES, getMonthNames(locale), false);

    // begin header
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "row"));

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastPrev.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "fastPrev", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarPrev.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "prev", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeClassAttribute(Classes.create(output, "header"));

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeAttribute(DataAttributes.COMMAND, "month", false);
    writer.writeText(new SimpleDateFormat("MMMMM", locale).format(calendar.getTime()));
    writer.endElement(HtmlElements.SPAN);

    writer.writeText(" "); // non breaking space

    writer.startElement(HtmlElements.SPAN, null);
    writer.writeAttribute(DataAttributes.COMMAND, "year", false);
    writer.writeText(new SimpleDateFormat("yyyy", locale).format(calendar.getTime()));
    writer.endElement(HtmlElements.SPAN);

    writer.endElement(HtmlElements.SPAN);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarNext.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "next", false);
    writer.endElement(HtmlElements.IMG);

    writer.startElement(HtmlElements.IMG, null);
    writer.writeClassAttribute(Classes.create(output, "header"));
    writer.writeAttribute(HtmlAttributes.ALT, "", false);
    writer.writeAttribute(HtmlAttributes.SRC,
        ResourceManagerUtils.getImageWithPath(facesContext, "image/calendarFastNext.gif"), false);
    writer.writeAttribute(DataAttributes.COMMAND, "fastNext", false);
    writer.endElement(HtmlElements.IMG);

    writer.endElement(HtmlElements.DIV);
    // end header

    // begin weeks
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "row"));

    final SimpleDateFormat dayInWeekFormat = new SimpleDateFormat("E", locale);
    for (int dayIt = 0; dayIt < 7; ++dayIt) {
      final DateModel date = model.getDate(0, dayIt);
      String dayName = dayInWeekFormat.format(date.getCalendar().getTime());
      if (dayName != null && dayName.length() > 2) {
        dayName = dayName.substring(0, 2);
      }

      writer.startElement(HtmlElements.SPAN, null);
      writer.writeClassAttribute(Classes.create(output, "dayOfWeek"));
      writer.writeText(dayName);
      writer.endElement(HtmlElements.SPAN);
    }

    writer.endElement(HtmlElements.DIV);
    // end weeks

    // begin grid
    writer.startElement(HtmlElements.DIV, null);
    writer.writeClassAttribute(Classes.create(output, "grid"));
    for (int week = 0; week < 6; ++week) {
      writer.startElement(HtmlElements.DIV, null);
      writer.writeClassAttribute(Classes.create(output, "row"));

      for (int dayIt = 0; dayIt < 7; ++dayIt) {
        final DateModel date = model.getDate(week, dayIt);
        final String dayDescription = String.valueOf(date.getDay());

        writer.startElement(HtmlElements.SPAN, null);
        writer.writeClassAttribute(
            Classes.create(output, "day", date.getMonth() == model.getMonth() ? null : Markup.DISABLED));

        writer.writeText(dayDescription);

        writer.endElement(HtmlElements.SPAN);
      }
View Full Code Here

TOP

Related Classes of org.apache.myfaces.tobago.model.CalendarModel

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.