EN · DE · RU · FR · ES

#2778: CalendarResponse.java

projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/CalendarResponse.java Java-Response-Builder (FullCalendar Ajax-Befehle) · projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/CalendarResponse.java 110 Zeilen · 48 Code · 43 Kommentare · 19 leer
Eine fließende API zum Senden von Befehlen vom Wicket-Server an den FullCalendar-JavaScript-Client als Reaktion auf Ajax-Callbacks. Jede Methode setzt einen jQuery-basierten JavaScript-Aufruf zusammen, der auf das DOM-Element des Kalenders abzielt ($('#calendarId').fullCalendarExt("command", args...)) und hängt ihn an das Wicket-AjaxRequestTarget an. Dies ist der Server-zu-Client-Befehlskanal für Kalendermanipulation: Aktualisieren von Ereignissen, Umschalten der Sichtbarkeit von Ereignisquellen, Entfernen von Ereignissen, Navigieren zu Daten und Löschen von Auswahlen – alles gesteuert von serverseitigen Ereignisbehandlern, die auf Benutzerinteraktionen reagieren.

Architektur

Befehl-Builder-Muster

Jede öffentliche Methode gibt CalendarResponse für die Verkettung zurück. Das Muster ermöglicht das Zusammensetzen mehrerer Kalenderbefehle in einem einzigen Callback-Handler:

response.clearSelection().gotoDate(date).refetchEvents();

Der zugrunde liegende Mechanismus generiert JavaScript-Zeichenketten über execute(args...), das String.format verwendet, um einen jQuery-Selektor zu erzeugen, der auf die Wicket-Markup-ID des Kalenders abzielt, und hängt das JavaScript an das AjaxRequestTarget an. Der Helfer q() schließt Argumente in einfache Anführungszeichen ein (oder gibt null für Nullwerte aus).

Verfügbare Befehle

Architekturhinweis: Einzelereignis-Optimierung

Die Methode refetchEvent enthält einen TODO-Kommentar, der die derzeit nicht optimierte Implementierung anerkennt (erneutes Abrufen der gesamten Quelle). Der Kommentar skizziert die geplante Optimierung: Suchen des betroffenen Ereignisses im clientseitigen Puffer und erneutes Abrufen nur dieses Ereignisses. Dies ist ein anerkannter Performance-TODO für Kalender mit vielen Ereignissen.

Git-Verlauf

CommitWas wurde geändert
868d6abb7 bis ceb63e8a1Sechs jährliche Aktualisierungen der Copyright-Header. Der Befehlssatz und die fließende API sind stabil geblieben – der Befehlswortschatz des FullCalendar-Erweiterungsskripts deckt die Anforderungen der Kalenderintegration ab, und es waren keine neuen Server-zu-Client-Befehle erforderlich.