package scrum.client.calendar; import ilarkesto.gwt.client.ButtonWidget; import ilarkesto.gwt.client.Date; import ilarkesto.gwt.client.Gwt; import ilarkesto.gwt.client.TableBuilder; import scrum.client.common.AScrumWidget; import scrum.client.common.UserGuideWidget; import scrum.client.workspace.PagePanel; import com.google.gwt.user.client.ui.Widget; public class CalendarWidget extends AScrumWidget { private DayListWidget dayList; private YearSelectorListWidget yearSelector; private MonthSelectorListWidget monthSelector; private DaySelectorListWidget daySelector; @Override protected Widget onInitialization() { dayList = new DayListWidget(); yearSelector = new YearSelectorListWidget(); monthSelector = new MonthSelectorListWidget(); daySelector = new DaySelectorListWidget(); PagePanel left = new PagePanel(); left.addHeader("Project Calendar", new ButtonWidget(new CreateSimpleEventAction())); left.addSection(dayList); left.addSection(new UserGuideWidget(getLocalizer().views().calendar(), getCurrentProject().getSimpleEvents() .size() < 5, getCurrentUser().getHideUserGuideCalendarModel())); PagePanel right = new PagePanel(); right.addHeader("Years"); right.addSection(yearSelector); right.addHeader("Months"); right.addSection(monthSelector); right.addHeader("Days"); right.addSection(daySelector); yearSelector.setSelectedYear(dayList.getDate().getYear()); yearSelector.setVisibleRange(dayList.getBegin(), dayList.getEnd()); monthSelector.setYear(dayList.getDate().getYear()); monthSelector.setSelectedMonth(dayList.getDate().getMonth()); monthSelector.setVisibleRange(dayList.getBegin(), dayList.getEnd()); daySelector.setSelectedDate(dayList.getDate()); daySelector.setVisibleRange(dayList.getBegin(), dayList.getEnd()); TableBuilder tb = new TableBuilder(); tb.setColumnWidths("", "10px", "270px"); tb.addRow(left, Gwt.createSpacer(10, 1), right); return tb.createTable(); } public Date getSelectedDate() { return new Date(yearSelector.getSelectedYear(), monthSelector.getSelectedMonth(), daySelector.getSelectedDay()); } public void showDate(Date date) { dayList.showDate(date); yearSelector.setSelectedYear(date.getYear()); yearSelector.setVisibleRange(dayList.getBegin(), dayList.getEnd()); monthSelector.setYear(date.getYear()); monthSelector.setSelectedMonth(date.getMonth()); monthSelector.setVisibleRange(dayList.getBegin(), dayList.getEnd()); daySelector.setSelectedDate(date); daySelector.setVisibleRange(dayList.getBegin(), dayList.getEnd()); } public void showEvent(SimpleEvent event) { dayList.showEvent(event); } }