EventSource.javaEventProvider) und seiner visuellen Darstellung im Kalender. Jede Ereignisquelle hat Darstellungseigenschaften (Farben, CSS-Klasse), Verhaltensflags (bearbeitbar, Standard-Ganztageseinstellung, Zeitzonenbehandlung), ein JSON-Roh-Ereignismodell (der JavaScript-Callback, der Ereignisse abruft) und Metadaten, die in einer generischen Map<String, Object> (Titel, UUID) gespeichert sind. Die UUID wird bei der Kalenderinitialisierung automatisch generiert und dient als Identität der Quelle für Ajax-Callbacks. Jackson-Annotationen steuern die Serialisierung: @JsonRawValue für das Ereignis-Callback-Skript, @JsonIgnore für interne Referenzen wie den EventProvider und UUID/Titel-Getter (die stattdessen über die data-Map serialisiert werden).Ereignisquellen haben zwei Identifikationssysteme: eine intern verwendete EventProvider-Referenz (Java-Objekt, nicht an den Client serialisiert) und eine UUID-Zeichenkette, die in der data-Map unter dem Schlüssel "fcxUuid" gespeichert ist. Die UUID ist der primäre Identifikator für die Client-Server-Kommunikation – sie wird in Ajax-Callback-Parametern gesendet und von EventManager für die Suche verwendet. Der Titel (gespeichert unter "fcxTitle") ist eine menschenlesbare Bezeichnung, die in den Kontrollkästchen der Ereignisquellenauswahl angezeigt wird. Die Konstantenklasse Const zentralisiert diese Map-Schlüssel.
Das events-Feld ist ein IModel<String>, dessen Wert ein JavaScript-Funktionsrumpf ist – der Callback, den FullCalendar aufruft, um Ereignisse für diese Quelle abzurufen. Es wird von FullCalendar.setupCallbacks() unter Verwendung der Vorlage aus FullCalendar.events.tpl gesetzt. Die @JsonRawValue-Annotation am Getter stellt sicher, dass dieser JavaScript-Code direkt in das JSON-Konfigurationsobjekt eingebettet wird, ohne Zeichenketten-Anführungszeichen, was für FullCalendar erforderlich ist, um ihn als ausführbaren Code zu interpretieren.
Zwei boolesche Flags steuern die Integration mit EventSourceSelector: includeInSelector (ob die Quelle überhaupt in der UI-Kontrollkästchenliste erscheint) und enableInSelector (ob ihr Kontrollkästchen interaktiv ist). Dies ermöglicht es, Quellen vorhanden, aber versteckt, oder sichtbar, aber nicht umschaltbar zu machen – nützlich für obligatorische Basiskalender, die immer angezeigt werden sollen.
Alle Setter geben EventSource für eine fließende Konfiguration zurück, konsistent mit den anderen FullCalendar-Modellklassen.
| Commit | Was wurde geändert |
|---|---|
868d6abb7 bis ceb63e8a1 | Sechs jährliche Aktualisierungen der Copyright-Header. Das Ereignisquellenmodell ist stabil – das UUID-basierte Identitätssystem, die dualen Farb-/Darstellungseigenschaften, die Auswahl-Integrationsflags und das vorlagenbasierte Ereignismodell decken alle Konfigurationsanforderungen der Ereignisquelle ab. |