CalendarResponse.java$('#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.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).
refetchEvents() — teilt FullCalendar mit, Ereignisdaten aus allen Quellen neu zu ladenrefetchEvents(EventSource) — lädt eine bestimmte Ereignisquelle neu, indem sie aus- und wieder eingeschaltet wirdrefetchEvent(EventSource, Event) — Platzhalter für optimierte Einzelereignisaktualisierung (fällt derzeit mit einem TODO-Kommentar auf die vollständige Quellaktualisierung zurück)toggleEventSource(EventSource, boolean) — aktiviert oder deaktiviert das Sichtbarkeitskontrollkästchen einer EreignisquelleremoveEvent(Event) — entfernt ein bestimmtes Ereignis aus dem KalendergotoDate(Date) — navigiert die Kalenderansicht zu einem bestimmten DatumclearSelection() — löscht die hervorgehobene DatumsbereichsauswahlDie 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.
| Commit | Was wurde geändert |
|---|---|
868d6abb7 bis ceb63e8a1 | Sechs 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. |