1 package net
.bzzt
.ical
.aggregator
.web
;
3 import java
.util
.Calendar
;
6 import net
.bzzt
.ical
.aggregator
.web
.ajax
.uniqueurls
.UniqueUrlHelper
;
8 import org
.apache
.commons
.lang
.time
.DateUtils
;
9 import org
.apache
.wicket
.Application
;
10 import org
.apache
.wicket
.PageParameters
;
11 import org
.apache
.wicket
.ajax
.AjaxRequestTarget
;
12 import org
.apache
.wicket
.ajax
.markup
.html
.AjaxLink
;
13 import org
.apache
.wicket
.markup
.html
.WebMarkupContainer
;
14 import org
.apache
.wicket
.markup
.html
.basic
.Label
;
15 import org
.apache
.wicket
.model
.Model
;
17 public class WeekView
extends AggregatorLayoutPage
21 private WebMarkupContainer weekViewContainer
;
28 public WeekView(PageParameters parameters
)
30 this(getDate(parameters
));
33 private static Date
getDate(PageParameters parameters
)
35 String dateAsString
= parameters
.getString("date");
37 Date date
= (Date
) Application
.get().getConverterLocator().getConverter(Date
.class).convertToObject(dateAsString
, null);
42 public WeekView(Date dateToShow
)
44 this.date
= dateToShow
;
46 weekViewContainer
= getWeekContainer("weekContainer");
47 add(weekViewContainer
);
50 private WebMarkupContainer
getWeekContainer(String id
)
52 WebMarkupContainer result
= new WebMarkupContainer(id
);
53 result
.setOutputMarkupId(true);
55 Calendar calendar
= Calendar
.getInstance();
56 calendar
.setTime(date
);
58 result
.add(new AjaxLink
<Void
>("previous")
64 private static final long serialVersionUID
= 1L;
67 public void onClick(AjaxRequestTarget target
)
69 date
= DateUtils
.addWeeks(date
, -1);
74 result
.add(new Label("week", new Model
<Integer
>(calendar
.get(Calendar
.WEEK_OF_YEAR
))));
75 result
.add(new AjaxLink
<Void
>("next")
81 private static final long serialVersionUID
= 1L;
84 public void onClick(AjaxRequestTarget target
)
86 date
= DateUtils
.addWeeks(date
, 1);
92 // sunday=1, saturday=7
93 int selected_day
= calendar
.get(Calendar
.DAY_OF_WEEK
);
95 // after this, monday=0, sunday=6
96 selected_day
= (selected_day
+ 5) % 7;
98 calendar
.add(Calendar
.DAY_OF_MONTH
, -selected_day
);
99 result
.add(new DayPanel("monday", calendar
.getTime(), this));
101 calendar
.add(Calendar
.DAY_OF_MONTH
, 1);
102 result
.add(new DayPanel("tuesday", calendar
.getTime(), this));
104 calendar
.add(Calendar
.DAY_OF_MONTH
, 1);
105 result
.add(new DayPanel("wednesday", calendar
.getTime(), this));
107 calendar
.add(Calendar
.DAY_OF_MONTH
, 1);
108 result
.add(new DayPanel("thursday", calendar
.getTime(), this));
110 calendar
.add(Calendar
.DAY_OF_MONTH
, 1);
111 result
.add(new DayPanel("friday", calendar
.getTime(), this));
113 calendar
.add(Calendar
.DAY_OF_MONTH
, 1);
114 result
.add(new DayPanel("saturday", calendar
.getTime(), this));
116 calendar
.add(Calendar
.DAY_OF_MONTH
, 1);
117 result
.add(new DayPanel("sunday", calendar
.getTime(), this));
123 * @see net.bzzt.ical.aggregator.web.AggregatorLayoutPage#refresh(org.apache.wicket.ajax.AjaxRequestTarget)
126 public void refresh(AjaxRequestTarget target
)
128 WebMarkupContainer newWeekContainer
= getWeekContainer("weekContainer");
129 weekViewContainer
.replaceWith(newWeekContainer
);
130 target
.addComponent(newWeekContainer
);
131 UniqueUrlHelper
.resetHash(target
, "date", date
);
132 weekViewContainer
= newWeekContainer
;