/** * Create a new date picker. */ public DatePicker() { this(new DefaultMonthSelector(), new DefaultCalendarView(), new CalendarModel()); }
@Override public void refresh() { firstDisplayed = getModel().getCurrentFirstDayOfFirstWeek(); if (firstDisplayed.getDate() == 1) { // show one empty week if date is Monday is the first in month. addDays(firstDisplayed, -7); } lastDisplayed.setTime(firstDisplayed.getTime()); for (int i = 0; i < grid.getNumCells(); i++) { if (i != 0) { addDays(lastDisplayed, 1); } DateCell cell = (DateCell) grid.getCell(i); cell.update(lastDisplayed); } setAriaSelectedCell(null); }
void update(Date current) { setEnabled(true); getValue().setTime(current.getTime()); String value = getModel().formatDayOfMonth(getValue()); setText(value); dateStyle = cellStyle; if (isFiller()) { getElement().setTabIndex(-1); dateStyle += " " + css().dayIsFiller(); } else { getElement().setTabIndex(0); String extraStyle = getDatePicker().getStyleOfDate(current); if (extraStyle != null) { dateStyle += " " + extraStyle; } } // We want to certify that all date styles have " " before and after // them for ease of adding to and replacing them. dateStyle += " "; updateStyle(); }
@Override public void addStyleToDate(String styleName, Date date) { assert getDatePicker().isDateVisible(date) : "You tried to add style " + styleName + " to " + date + ". The calendar is currently showing " + getFirstDate() + " to " + getLastDate(); getCell(date).addStyleName(styleName); }
int dayIdx = i + shift < CalendarModel.DAYS_IN_WEEK ? i + shift : i + shift - CalendarModel.DAYS_IN_WEEK; grid.setText(0, i, getModel().formatDayOfWeek(dayIdx)); formatter.setStyleName(0, i, css().weekendLabel()); if (weekendStartColumn == -1) { weekendStartColumn = i; formatter.setStyleName(0, i, css().weekdayLabel()); initWidget(grid); grid.setStyleName(css().days());
@Override public void setEnabledOnDate(boolean enabled, Date date) { getCell(date).setEnabled(enabled); }
@Override public void onSelected(boolean selected) { if (selected) { getDatePicker().setValue(getValue(), true); if (isFiller()) { getDatePicker().setCurrentMonth(getValue()); } } updateStyle(); }
public boolean isFiller() { return !getModel().isInCurrentMonth(getValue()); }
@Override public void addStyleToDate(String styleName, Date date) { assert getDatePicker().isDateVisible(date) : "You tried to add style " + styleName + " to " + date + ". The calendar is currently showing " + getFirstDate() + " to " + getLastDate(); getCell(date).addStyleName(styleName); }
int dayIdx = i + shift < CalendarModel.DAYS_IN_WEEK ? i + shift : i + shift - CalendarModel.DAYS_IN_WEEK; grid.setText(0, i, getModel().formatDayOfWeek(dayIdx)); formatter.setStyleName(0, i, css().weekendLabel()); if (weekendStartColumn == -1) { weekendStartColumn = i; formatter.setStyleName(0, i, css().weekdayLabel()); initWidget(grid); grid.setStyleName(css().days());
@Override public void removeStyleFromDate(String styleName, Date date) { getCell(date).removeStyleName(styleName); }
@Override public void updateStyle() { String accum = dateStyle; if (isHighlighted()) { accum += " " + css().dayIsHighlighted(); if (isHighlighted() && isSelected()) { accum += " " + css().dayIsValueAndHighlighted(); } } if (!isEnabled()) { accum += " " + css().dayIsDisabled(); } setStyleName(accum); }
@Override public void onSelected(boolean selected) { if (selected) { getDatePicker().setValue(getValue(), true); if (isFiller()) { getDatePicker().setCurrentMonth(getValue()); } } updateStyle(); }
public boolean isFiller() { return !getModel().isInCurrentMonth(getValue()); }
@Override public void addStyleToDate(String styleName, Date date) { assert getDatePicker().isDateVisible(date) : "You tried to add style " + styleName + " to " + date + ". The calendar is currently showing " + getFirstDate() + " to " + getLastDate(); getCell(date).addStyleName(styleName); }
@Override public void refresh() { firstDisplayed = getModel().getCurrentFirstDayOfFirstWeek(); if (firstDisplayed.getDate() == 1) { // show one empty week if date is Monday is the first in month. addDays(firstDisplayed, -7); } lastDisplayed.setTime(firstDisplayed.getTime()); for (int i = 0; i < grid.getNumCells(); i++) { if (i != 0) { addDays(lastDisplayed, 1); } DateCell cell = (DateCell) grid.getCell(i); cell.update(lastDisplayed); } setAriaSelectedCell(null); }
void update(Date current) { setEnabled(true); getValue().setTime(current.getTime()); String value = getModel().formatDayOfMonth(getValue()); setText(value); dateStyle = cellStyle; if (isFiller()) { getElement().setTabIndex(-1); dateStyle += " " + css().dayIsFiller(); } else { getElement().setTabIndex(0); String extraStyle = getDatePicker().getStyleOfDate(current); if (extraStyle != null) { dateStyle += " " + extraStyle; } } // We want to certify that all date styles have " " before and after // them for ease of adding to and replacing them. dateStyle += " "; updateStyle(); }
int dayIdx = i + shift < CalendarModel.DAYS_IN_WEEK ? i + shift : i + shift - CalendarModel.DAYS_IN_WEEK; grid.setText(0, i, getModel().formatDayOfWeek(dayIdx)); formatter.setStyleName(0, i, css().weekendLabel()); if (weekendStartColumn == -1) { weekendStartColumn = i; formatter.setStyleName(0, i, css().weekdayLabel()); initWidget(grid); grid.setStyleName(css().days());
public class LimitedDatePicker extends DatePicker { public MonthYearDatePicker() { super(new LimitedMonthSelector(), new DefaultCalendarView(), new CalendarModel()); } }