package org.richfaces.demo.calendar.model; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import javax.faces.bean.ApplicationScoped; import javax.faces.bean.ManagedBean; import org.richfaces.model.CalendarDataModel; import org.richfaces.model.CalendarDataModelItem; @ManagedBean @ApplicationScoped public class CalendarModel implements CalendarDataModel { private static final String WEEKEND_DAY_CLASS = "wdc"; private static final String BUSY_DAY_CLASS = "bdc"; private static final String BOUNDARY_DAY_CLASS = "rf-ca-boundary-dates"; private boolean checkBusyDay(Calendar calendar) { return (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.TUESDAY || calendar.get(Calendar.DAY_OF_WEEK) == Calendar.THURSDAY); } private boolean checkWeekend(Calendar calendar) { return (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY || calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY); } public CalendarDataModelItem[] getData(Date[] dateArray) { CalendarDataModelItem[] modelItems = new CalendarModelItem[dateArray.length]; Calendar current = GregorianCalendar.getInstance(); Calendar today = GregorianCalendar.getInstance(); today.setTime(new Date()); for (int i = 0; i < dateArray.length; i++) { current.setTime(dateArray[i]); CalendarModelItem modelItem = new CalendarModelItem(); if (current.before(today)) { modelItem.setEnabled(false); modelItem.setStyleClass(BOUNDARY_DAY_CLASS); } else if (checkBusyDay(current)) { modelItem.setEnabled(false); modelItem.setStyleClass(BUSY_DAY_CLASS); } else if (checkWeekend(current)) { modelItem.setEnabled(false); modelItem.setStyleClass(WEEKEND_DAY_CLASS); } else { modelItem.setEnabled(true); modelItem.setStyleClass(""); } modelItems[i] = modelItem; } return modelItems; } public Object getToolTip(Date date) { return null; } }