@Override public void onClick(ClickEvent event) { Widget sender = (Widget) event.getSource(); if (prevMBtn.equals(sender)) { setCursorDate( GWTCSimpleDatePicker.increaseMonth(getCursorDate(), isMonthInRange(-1 * monthStep))); } else if (nextMBtn.equals(sender)) { setCursorDate(GWTCSimpleDatePicker.increaseMonth(getCursorDate(), isMonthInRange(monthStep))); } else if (prevYBtn.equals(sender)) { setCursorDate(GWTCSimpleDatePicker.increaseMonth(getCursorDate(), isMonthInRange(-12))); } else if (nextYBtn.equals(sender)) { setCursorDate(GWTCSimpleDatePicker.increaseMonth(getCursorDate(), isMonthInRange(12))); } else if (todayBtn.equals(sender)) { setCursorDate(new Date()); } else if (helpBtn.equals(sender)) { helpDlg.alert(helpStr.replaceAll("\\n", "<br/>")); } else if (closeBtn.equals(sender)) { hide(); } else { super.onClick(event); } refresh(); }
/** Redraw all calendar elements into the container */ @Override public void refresh() { needsRedraw = false; prevMBtn.setEnabled(simpleDatePickers.get(0).isVisibleMonth(-1)); nextMBtn.setEnabled(simpleDatePickers.get(0).isVisibleMonth(1)); prevYBtn.setEnabled(simpleDatePickers.get(0).isVisibleMonth(-1)); nextYBtn.setEnabled(simpleDatePickers.get(0).isVisibleMonth(1)); todayBtn.setEnabled( getMonthNumber(simpleDatePickers.get(0).getCursorDate()) != getMonthNumber(new Date())); fillMenuItems(); for (int i = 0; i < simpleDatePickers.size(); i++) { simpleDatePickers .get(i) .setCursorDate( GWTCSimpleDatePicker.increaseMonth(simpleDatePickers.get(0).getCursorDate(), i)); simpleDatePickers.get(i).refresh(); monthHeaders .get(i) .setText( GWTCSimpleDatePicker.formatDate( MONTH_FORMAT, simpleDatePickers.get(i).getCursorDate())); } }
private void fillMenuItems() { monthSelectorHeader.clearItems(); monthMenu.clearItems(); monthSelectorHeader.addItem( GWTCSimpleDatePicker.formatDate(MONTH_FORMAT, simpleDatePickers.get(0).getCursorDate()), monthMenu); int n = -1 * (monthSelector / 2); Date d = new Date(GWTCSimpleDatePicker.getFirstDayOfMonth(getCursorDate()).getTime()); Date md = new Date( GWTCSimpleDatePicker.getFirstDayOfMonth(simpleDatePickers.get(0).getMinimalDate()) .getTime()); d = GWTCSimpleDatePicker.increaseMonth(d, n); while (GWTCSimpleDatePicker.compareDate(md, d) < 0) { d = GWTCSimpleDatePicker.increaseMonth(d, 1); n++; } n += monthSelector; d = GWTCSimpleDatePicker.increaseMonth(getCursorDate(), n); while (GWTCSimpleDatePicker.compareDate(simpleDatePickers.get(0).getMaximalDate(), d) > 0) { d = GWTCSimpleDatePicker.increaseMonth(d, -1); n--; } n -= monthSelector; d = GWTCSimpleDatePicker.increaseMonth(getCursorDate(), n); for (int i = n; i < monthSelector; i++) { String t = GWTCSimpleDatePicker.formatDate(MONTH_FORMAT, d); MenuCommand c = new MenuCommand(d); d = GWTCSimpleDatePicker.increaseMonth(d, 1); if (GWTCSimpleDatePicker.compareDate(d, simpleDatePickers.get(0).getMaximalDate()) >= 0 && GWTCSimpleDatePicker.compareDate(simpleDatePickers.get(0).getMinimalDate(), d) > 0) { monthMenu.addItem(t, c); } } }