From c349fc120ba2998919624990833ff3bb33476dfd Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Wed, 3 Mar 2010 20:53:28 +0100 Subject: [PATCH] Day view --- .../ical/aggregator/service/impl/EventFilter.java | 31 ++++++ .../java/net/bzzt/ical/aggregator/web/DayView.html | 13 +++ .../java/net/bzzt/ical/aggregator/web/DayView.java | 115 +++++++++++++++++++++ 3 files changed, 159 insertions(+) create mode 100644 src/main/java/net/bzzt/ical/aggregator/service/impl/EventFilter.java create mode 100644 src/main/java/net/bzzt/ical/aggregator/web/DayView.html create mode 100644 src/main/java/net/bzzt/ical/aggregator/web/DayView.java diff --git a/src/main/java/net/bzzt/ical/aggregator/service/impl/EventFilter.java b/src/main/java/net/bzzt/ical/aggregator/service/impl/EventFilter.java new file mode 100644 index 0000000..f79598d --- /dev/null +++ b/src/main/java/net/bzzt/ical/aggregator/service/impl/EventFilter.java @@ -0,0 +1,31 @@ +package net.bzzt.ical.aggregator.service.impl; + +import java.io.Serializable; +import java.util.Date; + +public class EventFilter implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + + public Date fromDate = new Date(); + + public Date toDate; + + public boolean resolveDuplicates = true; + + public boolean noHidden = true; + + public EventFilter(Date date) + { + this.fromDate = date; + this.toDate = date; + } + + public EventFilter() + { + } + +} diff --git a/src/main/java/net/bzzt/ical/aggregator/web/DayView.html b/src/main/java/net/bzzt/ical/aggregator/web/DayView.html new file mode 100644 index 0000000..5bb9818 --- /dev/null +++ b/src/main/java/net/bzzt/ical/aggregator/web/DayView.html @@ -0,0 +1,13 @@ + +
+
<
+

+
>
+
+
+
+
+ +
+
+
\ No newline at end of file diff --git a/src/main/java/net/bzzt/ical/aggregator/web/DayView.java b/src/main/java/net/bzzt/ical/aggregator/web/DayView.java new file mode 100644 index 0000000..0818dd3 --- /dev/null +++ b/src/main/java/net/bzzt/ical/aggregator/web/DayView.java @@ -0,0 +1,115 @@ +package net.bzzt.ical.aggregator.web; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +import net.bzzt.ical.aggregator.model.Event; +import net.bzzt.ical.aggregator.service.FeedService; + +import org.apache.commons.lang.time.DateUtils; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.link.Link; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.model.Model; +import org.apache.wicket.spring.injection.annot.SpringBean; + +public class DayView extends AggregatorLayoutPage +{ + @SpringBean + private FeedService feedService; + + public DayView() + { + this(new Date()); + } + + public DayView(final Date date) + { + add(new Link("previous") + { + + /** + * + */ + private static final long serialVersionUID = 1L; + + @Override + public void onClick() + { + setResponsePage(new DayView(DateUtils.addDays(date, -1))); + } + + }); + add(new Label("date", new Model(date))); + add(new Link("next") + { + + /** + * + */ + private static final long serialVersionUID = 1L; + + @Override + public void onClick() + { + setResponsePage(new DayView(DateUtils.addDays(date, 1))); + } + + }); + + List eventsForDay = feedService.getEventsForDay(AggregatorSession.get().getSelectedFeeds(), date); + Collections.sort(eventsForDay); + + List> columns = splitEvents(eventsForDay, 3); + + add(new ListView>("column", columns) + { + + /** + * + */ + private static final long serialVersionUID = 1L; + + @Override + protected void populateItem(ListItem> item) + { + item.add(new ListView("event", item.getModel()) + { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Override + protected void populateItem(ListItem item) + { + item.add(new MoreInfoPanel("infoPanel", item.getModel(), true)); + } + }); + } + + } + ); + + } + + private List> splitEvents(List eventsForDay, int sublists) + { + List> result = new ArrayList>(); + for (int i = 0; i < sublists; i++) + { + result.add(new ArrayList()); + } + + int i = 0; + for (Event event : eventsForDay) + { + result.get(i%sublists).add(event); + i++; + } + return result; + } +} -- 2.11.4.GIT