/** * Create a new date picker. */ public DatePicker() { this(new DefaultMonthSelector(), new DefaultCalendarView(), new CalendarModel()); }
private void setupGrid() { grid.removeAllRows(); grid.insertRow(0); // Back arrows if (getDatePicker().isYearArrowsVisible()) { addCell(yearBackwards, "1"); } addCell(monthBackwards, "1"); // Month/Year column if (getDatePicker().isYearAndMonthDropdownVisible()) { // Drop-down if (getModel().isMonthBeforeYear()) { addCell(monthSelect, "50%", css().month()); addCell(yearSelect, "50%", css().year()); } else { addCell(yearSelect, "50%", css().year()); addCell(monthSelect, "50%", css().month()); } } else { // Text-only monthColumn = addCell(null, "100%", css().month()); } // Forward arrows addCell(monthForwards, "1"); if (getDatePicker().isYearArrowsVisible()) { addCell(yearForwards, "1"); } }
@Override protected void refresh() { if (isDatePickerConfigChanged()) { // if the config has changed since the last refresh, rebuild the grid setupGrid(); } setDate(getModel().getCurrentMonth()); }
@Override protected void setup() { // previous, next buttons monthBackwards = createNavigationButton("‹", -1, css().previousButton()); monthForwards = createNavigationButton("›", 1, css().nextButton()); yearBackwards = createNavigationButton("«", -12, css().previousYearButton()); yearForwards = createNavigationButton("»", 12, css().nextYearButton()); // month and year selector monthSelect = createMonthSelect(); yearSelect = createYearSelect(); // Set up grid. grid = new FlexTable(); grid.setStyleName(css().monthSelector()); setupGrid(); initWidget(grid); }
private void setDate(Date date) { if (getDatePicker().isYearAndMonthDropdownVisible()) { // setup months dropdown int month = date.getMonth(); monthSelect.setSelectedIndex(month); // setup years dropdown yearSelect.clear(); int year = date.getYear(); int startYear = year - getNoOfYearsToDisplayBefore(); int endYear = year + getNoOfYearsToDisplayAfter(); Date newDate = new Date(); for (int i = startYear; i <= endYear; i++) { newDate.setYear(i); yearSelect.addItem(getModel().getYearFormatter().format(newDate)); } yearSelect.setSelectedIndex(year - startYear); } else { grid.setText(0, monthColumn, getModel().formatCurrentMonthAndYear()); } }
private int getNoOfYearsToDisplayAfter() { return getDatePicker().getVisibleYearCount() / 2; }
public void onClick(ClickEvent event) { addMonths(noOfMonths); } });
private int addCell(Widget widget, String width) { return addCell(widget, width, null); }
private ListBox createMonthSelect() { final ListBox monthListBox = new ListBox(); for (int i = 0; i < CalendarModel.MONTHS_IN_YEAR; i++) { monthListBox.addItem(getModel().formatMonth(i)); } monthListBox.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { int previousMonth = getModel().getCurrentMonth().getMonth(); int newMonth = monthListBox.getSelectedIndex(); int delta = newMonth - previousMonth; addMonths(delta); } }); return monthListBox; }
@Override protected void setup() { // previous, next buttons monthBackwards = createNavigationButton("‹", -1, css().previousButton()); monthForwards = createNavigationButton("›", 1, css().nextButton()); yearBackwards = createNavigationButton("«", -12, css().previousYearButton()); yearForwards = createNavigationButton("»", 12, css().nextYearButton()); // month and year selector monthSelect = createMonthSelect(); yearSelect = createYearSelect(); // Set up grid. grid = new FlexTable(); grid.setStyleName(css().monthSelector()); setupGrid(); initWidget(grid); }
@Override protected void refresh() { if (isDatePickerConfigChanged()) { // if the config has changed since the last refresh, rebuild the grid setupGrid(); } setDate(getModel().getCurrentMonth()); }
private void setDate(Date date) { if (getDatePicker().isYearAndMonthDropdownVisible()) { // setup months dropdown int month = date.getMonth(); monthSelect.setSelectedIndex(month); // setup years dropdown yearSelect.clear(); int year = date.getYear(); int startYear = year - getNoOfYearsToDisplayBefore(); int endYear = year + getNoOfYearsToDisplayAfter(); Date newDate = new Date(); for (int i = startYear; i <= endYear; i++) { newDate.setYear(i); yearSelect.addItem(getModel().getYearFormatter().format(newDate)); } yearSelect.setSelectedIndex(year - startYear); } else { grid.setText(0, monthColumn, getModel().formatCurrentMonthAndYear()); } }
private int getNoOfYearsToDisplayBefore() { return (getDatePicker().getVisibleYearCount() - 1) / 2; }
@Override public void onChange(ChangeEvent event) { int deltaYears = yearListBox.getSelectedIndex() - getNoOfYearsToDisplayBefore(); addMonths(deltaYears * CalendarModel.MONTHS_IN_YEAR); } });
private int addCell(Widget widget, String width) { return addCell(widget, width, null); }
private ListBox createMonthSelect() { final ListBox monthListBox = new ListBox(); for (int i = 0; i < CalendarModel.MONTHS_IN_YEAR; i++) { monthListBox.addItem(getModel().formatMonth(i)); } monthListBox.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { int previousMonth = getModel().getCurrentMonth().getMonth(); int newMonth = monthListBox.getSelectedIndex(); int delta = newMonth - previousMonth; addMonths(delta); } }); return monthListBox; }
@Override protected void setup() { // previous, next buttons monthBackwards = createNavigationButton("‹", -1, css().previousButton()); monthForwards = createNavigationButton("›", 1, css().nextButton()); yearBackwards = createNavigationButton("«", -12, css().previousYearButton()); yearForwards = createNavigationButton("»", 12, css().nextYearButton()); // month and year selector monthSelect = createMonthSelect(); yearSelect = createYearSelect(); // Set up grid. grid = new FlexTable(); grid.setStyleName(css().monthSelector()); setupGrid(); initWidget(grid); }
@Override protected void refresh() { if (isDatePickerConfigChanged()) { // if the config has changed since the last refresh, rebuild the grid setupGrid(); } setDate(getModel().getCurrentMonth()); }
private void setDate(Date date) { if (getDatePicker().isYearAndMonthDropdownVisible()) { // setup months dropdown int month = date.getMonth(); monthSelect.setSelectedIndex(month); // setup years dropdown yearSelect.clear(); int year = date.getYear(); int startYear = year - getNoOfYearsToDisplayBefore(); int endYear = year + getNoOfYearsToDisplayAfter(); Date newDate = new Date(); for (int i = startYear; i <= endYear; i++) { newDate.setYear(i); yearSelect.addItem(getModel().getYearFormatter().format(newDate)); } yearSelect.setSelectedIndex(year - startYear); } else { grid.setText(0, monthColumn, getModel().formatCurrentMonthAndYear()); } }