From db3ee54d393cad59417549afea04f0ff74d39c66 Mon Sep 17 00:00:00 2001 From: Sebastian Schmelzer Date: Tue, 11 Sep 2012 15:23:46 +0200 Subject: simplify calendar --- .../rz/infoscreen/component/AbstractCalendar.java | 105 +++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 src/main/java/de/unifr/rz/infoscreen/component/AbstractCalendar.java (limited to 'src') 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; + } + +} -- cgit v1.2.3-55-g7522