EN · DE · RU · FR · ES

#2780: Event.java

projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/Event.java Java-Modell (FullCalendar-Ereignis) · projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/Event.java 186 Zeilen · 108 Code · 33 Kommentare · 45 leer
Die kanonische Modellklasse, die ein einzelnes Kalenderereignis in der Wicket-FullCalendar-Integration repräsentiert. Bildet direkt die Felder des FullCalendar-JavaScript-Ereignisobjekts ab: eindeutige Kennung, Titel, Ganztags-Flag, Start-/Enddaten (als Joda-Time DateTime), optionaler URL-Link, CSS-Klassenname, Bearbeitbarkeits-Flag, vier Farbeigenschaften (Text, Hintergrund, Rahmen und eine allgemeine Farbe) sowie ein undurchsichtiges payload-Feld zum Anhängen beliebiger serialisierbarer Domänendaten. Jeder Setter gibt this für eine fließende Konstruktion zurück. Dieses Objekt wird von Jackson zu JSON serialisiert und als Teil der Antwort einer Ereignisquelle an den Client gesendet.

Architektur

Ereignisidentität

Das Feld id dient als eindeutige Kennung und wird von FullCalendar für die Ereignisverfolgung verwendet (Drag-and-Drop-Persistenz, Ereignisentfernung). Ereignisse ohne IDs werden vom Client als flüchtig behandelt. Die ID entspricht typischerweise einem Primärschlüssel der Datenbank (z. B. der Datenbankzeilen-ID eines Kalenderereignisses).

Farbeigenschaften

Vier Farbfelder bieten eine granulare visuelle Kontrolle: color (Text und Rahmen), backgroundColor, borderColor und textColor. Wenn nur color gesetzt ist, verwendet FullCalendar es für alle visuellen Aspekte. Die separaten Eigenschaften ermöglichen das Überschreiben bestimmter Aspekte, während andere übernommen werden. Es handelt sich um CSS-Farbzeichenfolgen (hex, rgb oder benannte Farben).

Payload-Muster

Das Feld payload (Typ Serializable) ist ein Erweiterungspunkt zum Anhängen anwendungsspezifischer Daten an Kalenderereignisse. Beispielsweise könnte ein ProjectForge-Kalenderereignis einen Verweis auf die Datenbankentität (Zeiterfassungseintrag, Urlaubsantrag, Projektmeilenstein) enthalten, die das Ereignis repräsentiert. Der Payload durchläuft den vollständigen Roundtrip: Server → JSON → Client → Callback → Server, sodass serverseitige Handler das Domänenobjekt abrufen können, das mit einem angeklickten oder gezogenen Ereignis verknüpft ist.

Joda-Time-Verwendung

Start- und Endzeiten verwenden Joda-Time DateTime (nicht java.util.Date), was eine Zeitzonenunterstützung bietet, die java.util.Date fehlt. Die benutzerdefinierten Serialisierer in AbstractFullCalendar konvertieren diese in ISO-8601-Zeichenfolgen, die der FullCalendar-JavaScript-Client nativ versteht.

Git-Verlauf

CommitWas hat sich geändert
868d6abb7 bis ceb63e8a1Sechs jährliche Aktualisierungen der Copyright-Header. Das Ereignismodell ist stabil geblieben, was die Reife der FullCalendar-Ereignisobjekt-Spezifikation widerspiegelt – alle Standardeigenschaften sind abgedeckt, und der payload-Erweiterungspunkt behandelt benutzerdefinierte Daten.