1 package net
.bzzt
.ical
.aggregator
.web
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Collections
;
8 import net
.bzzt
.ical
.aggregator
.model
.Event
;
9 import net
.bzzt
.ical
.aggregator
.service
.FeedService
;
11 import org
.apache
.commons
.lang
.time
.DateUtils
;
12 import org
.apache
.wicket
.ajax
.AjaxRequestTarget
;
13 import org
.apache
.wicket
.markup
.html
.basic
.Label
;
14 import org
.apache
.wicket
.markup
.html
.link
.Link
;
15 import org
.apache
.wicket
.markup
.html
.list
.ListItem
;
16 import org
.apache
.wicket
.markup
.html
.list
.ListView
;
17 import org
.apache
.wicket
.model
.Model
;
18 import org
.apache
.wicket
.spring
.injection
.annot
.SpringBean
;
20 public class DayView
extends AggregatorLayoutPage
23 private FeedService feedService
;
32 public DayView(Date dateToShow
)
34 this.date
= dateToShow
;
35 add(new Link
<Void
>("previous")
41 private static final long serialVersionUID
= 1L;
46 setResponsePage(new DayView(DateUtils
.addDays(date
, -1)));
50 add(new Label("date", new Model
<Date
>(date
)));
51 add(new Link
<Void
>("next")
57 private static final long serialVersionUID
= 1L;
62 setResponsePage(new DayView(DateUtils
.addDays(date
, 1)));
67 List
<Event
> eventsForDay
= feedService
.getEventsForDay(AggregatorSession
.get().getSelectedFeeds(), date
);
68 Collections
.sort(eventsForDay
);
70 List
<List
<Event
>> columns
= splitEvents(eventsForDay
, 3);
72 add(new ListView
<List
<Event
>>("column", columns
)
78 private static final long serialVersionUID
= 1L;
81 protected void populateItem(ListItem
<List
<Event
>> item
)
83 item
.add(new ListView
<Event
>("event", item
.getModel())
88 private static final long serialVersionUID
= 1L;
91 protected void populateItem(ListItem
<Event
> item
)
93 item
.add(new MoreInfoPanel("infoPanel", item
.getModel(), true));
103 private List
<List
<Event
>> splitEvents(List
<Event
> eventsForDay
, int sublists
)
105 List
<List
<Event
>> result
= new ArrayList
<List
<Event
>>();
106 for (int i
= 0; i
< sublists
; i
++)
108 result
.add(new ArrayList
<Event
>());
112 for (Event event
: eventsForDay
)
114 result
.get(i
%sublists
).add(event
);
121 * @see net.bzzt.ical.aggregator.web.AggregatorLayoutPage#refresh(org.apache.wicket.ajax.AjaxRequestTarget)
124 public void refresh(AjaxRequestTarget target
)
126 setResponsePage(new DayView(date
));