AbstractFullCalendar.javaFullCalendar (Datei #2787) und trennt die Rendering-Infrastruktur vom Komponentenverhalten. Sie registriert das erforderliche FullCalendar-CSS, JavaScript (minimierte oder Entwicklungsversionen) und ein benutzerdefiniertes Erweiterungsskript und stellt benutzerdefinierte Jackson-Serialisierer bereit, die DateTime in das ISO-8601-Format und LocalTime in das 12-Stunden-Format (h:mmaa) für die JSON-Einbettung konvertieren.Die Methode renderHead(IHeaderResponse) liefert vier Ressourcen in dieser Reihenfolge: jQuery (über Wickets integrierte Ajax-jQuery-Referenz), FullCalendar-CSS, FullCalendar-JS (in der Bereitstellungsumgebung die minimierte Version, andernfalls die Entwicklungsversion zur Fehlersuche) und ein benutzerdefiniertes Erweiterungsskript (fullcalendar.ext.js), das Wicket-spezifische FullCalendar-Methoden hinzufügt. Die Prüfung des Bereitstellungsmodus (getApplication().usesDeploymentConfig()) folgt dem Standardmuster von Wicket für den Wechsel zwischen optimierten und debug-fähigen Ressourcen.
Zwei innere statische Klassen erweitern Jacksons StdSerializer, um Joda-Time-Typen zu verarbeiten, die Jackson nicht nativ unterstützt:
DateTimeSerializer — formatiert mit Jodas ISODateTimeFormat.dateTime(), was standardmäßige ISO-8601-Zeichenketten wie 2024-03-15T14:30:00.000+01:00 erzeugtLocalTimeSerializer — formatiert mit Jodas Muster h:mmaa und erzeugt Zeichenketten wie 14:30 — dies ist das Format, das der FullCalendar-JavaScript-Client für zeitbezogene Konfigurationsoptionen erwartetDiese Serialisierer werden bei der ProjectForge-JSON-Hilfsklasse (ToStringUtil) registriert und von der Config-Serialisierung in der renderHead-Methode von FullCalendar verwendet.
AbstractFullCalendar extends MarkupContainer implements IHeaderContributor. Die Erweiterung von MarkupContainer (anstelle einer spezifischeren Wicket-Komponente) bietet Flexibilität, um untergeordnete Verhaltensweisen und Panels anzuhängen und gleichzeitig zum <head>-Bereich der Seite beizutragen. Die konkrete Klasse FullCalendar fügt auf dieser Basis Callback-Verkabelung und Ereignisverwaltung hinzu.
| Commit | Was geändert wurde |
|---|---|
868d6abb7 bis ceb63e8a1 | Sechs jährliche Aktualisierungen der Copyright-Header. Die Header-Beiträge und die Serialisierungslogik der Komponente blieben über alle Wicket-Upgrades hinweg stabil – das Ressourcenladeprinzip der FullCalendar-JavaScript-Bibliothek und die Joda-Time-Serialisierungsanforderungen haben sich nicht geändert. |