summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Schmelzer2012-09-11 15:23:46 +0200
committerSebastian Schmelzer2012-09-11 15:23:46 +0200
commitdb3ee54d393cad59417549afea04f0ff74d39c66 (patch)
tree35929de0d1ba0d9ef18ea526f3518c9fbc38cea6
parentsimplify calendar (diff)
downloadinfoscreen-db3ee54d393cad59417549afea04f0ff74d39c66.tar.gz
infoscreen-db3ee54d393cad59417549afea04f0ff74d39c66.tar.xz
infoscreen-db3ee54d393cad59417549afea04f0ff74d39c66.zip
simplify calendar
-rw-r--r--src/main/java/de/unifr/rz/infoscreen/component/AbstractCalendar.java105
1 files changed, 105 insertions, 0 deletions
diff --git a/src/main/java/de/unifr/rz/infoscreen/component/AbstractCalendar.java b/src/main/java/de/unifr/rz/infoscreen/component/AbstractCalendar.java
new file mode 100644
index 0000000..c85c28e
--- /dev/null
+++ b/src/main/java/de/unifr/rz/infoscreen/component/AbstractCalendar.java
@@ -0,0 +1,105 @@
+package de.unifr.rz.infoscreen.component;
+
+import java.util.Locale;
+
+import net.ftlines.wicket.fullcalendar.Config;
+import net.ftlines.wicket.fullcalendar.EventProvider;
+import net.ftlines.wicket.fullcalendar.EventSource;
+import net.ftlines.wicket.fullcalendar.FullCalendar;
+
+import org.apache.wicket.markup.html.panel.Panel;
+import org.joda.time.LocalTime;
+
+public abstract class AbstractCalendar extends Panel {
+
+ private static final long serialVersionUID = 1L;
+ private EventProvider ep;
+ private Config calendarConfig = new Config();
+
+ protected static enum ViewType {
+ DAY, WEEK
+ }
+
+ private ViewType activeView;
+
+ public AbstractCalendar(String id, EventProvider ep, ViewType vt) {
+ super(id);
+ this.setEp(ep);
+
+ setActiveView(vt);
+
+ setDefaults(getCalendarConfig());
+ updateConfig(getCalendarConfig());
+
+ EventSource content = new EventSource();
+ content.setEventsProvider(ep);
+ getCalendarConfig().add(content);
+
+
+ FullCalendar ajaxCalendar = new FullCalendar("calendar",
+ getCalendarConfig()) {
+
+ private static final long serialVersionUID = 1L;
+
+ };
+
+ ajaxCalendar.setMarkupId("calendar");
+ add(ajaxCalendar);
+
+ }
+
+ public void setDefaults(Config cfg) {
+
+ cfg.setSelectable(false);
+ cfg.setSelectHelper(false);
+
+ cfg.getHeader().setLeft("");
+ cfg.getHeader().setCenter("");
+ cfg.getHeader().setRight("");
+
+ if (getActiveView() == ViewType.WEEK) {
+ cfg.setDefaultView("agendaWeek");
+ } else {
+ cfg.setDefaultView("agendaDay");
+ }
+
+ cfg.setAllDaySlot(false);
+
+ cfg.setColumnFormatWeek("dddd, d.M.");
+ cfg.setColumnFormatDay("dddd, d.M.");
+ cfg.setLocale(Locale.GERMANY);
+
+ cfg.setMinTime(new LocalTime(6, 30));
+ cfg.setMaxTime(new LocalTime(23, 00));
+
+ cfg.enableTimeline();
+
+ }
+
+ public void updateConfig(Config cfg) {};
+
+ public EventProvider getEp() {
+ return ep;
+ }
+
+ public void setEp(EventProvider ep) {
+ this.ep = ep;
+ }
+
+ public Config getCalendarConfig() {
+ return calendarConfig;
+ }
+
+ public void setCalendarConfig(Config calendarConfig) {
+ this.calendarConfig = calendarConfig;
+ }
+
+ public ViewType getActiveView() {
+ return activeView;
+ }
+
+ public void setActiveView(ViewType activeView) {
+ this.activeView = activeView;
+ }
+
+}