EventSource.javaEventProvider) et sa représentation visuelle dans le calendrier. Chaque source d'événements possède des propriétés d'apparence (couleurs, classe CSS), des indicateurs comportementaux (éditable, par défaut toute la journée, gestion du fuseau horaire), un modèle d'événements JSON brut (le callback JavaScript qui récupère les événements) et des métadonnées stockées dans une Map<String, Object> générique (titre, UUID). L'UUID est généré automatiquement lors de l'initialisation du calendrier et sert d'identifiant de la source pour les callbacks Ajax. Les annotations Jackson contrôlent la sérialisation : @JsonRawValue pour le script de callback des événements, @JsonIgnore pour les références internes comme EventProvider et les accesseurs UUID/titre (qui sont sérialisés via la map data à la place).Les sources d'événements disposent de deux systèmes d'identifiant : une référence EventProvider utilisée en interne (objet Java, non sérialisé vers le client), et une chaîne UUID stockée dans la map data sous la clé "fcxUuid". L'UUID est l'identifiant principal pour la communication client-serveur — il est envoyé dans les paramètres des callbacks Ajax et utilisé par EventManager pour la recherche. Le titre (stocké sous "fcxTitle") est une étiquette lisible affichée dans les cases à cocher du sélecteur de source d'événements. La classe de constantes Const centralise ces clés de map.
Le champ events est un IModel<String> dont la valeur est un corps de fonction JavaScript — le callback que FullCalendar invoque pour récupérer les événements de cette source. Il est défini par FullCalendar.setupCallbacks() en utilisant le modèle de FullCalendar.events.tpl. L'annotation @JsonRawValue sur l'accesseur garantit que ce code JavaScript est intégré directement dans l'objet de configuration JSON sans guillemets, ce qui est nécessaire pour que FullCalendar l'interprète comme du code exécutable.
Deux indicateurs booléens contrôlent l'intégration avec EventSourceSelector : includeInSelector (si la source apparaît dans la liste des cases à cocher de l'interface utilisateur) et enableInSelector (si sa case à cocher est interactive). Cela permet aux sources d'être présentes mais cachées, ou visibles mais non basculables — utile pour les calendriers de base obligatoires qui doivent toujours être affichés.
Tous les mutateurs retournent EventSource pour une configuration fluide, cohérente avec le reste des classes du modèle FullCalendar.
| Commit | Ce qui a changé |
|---|---|
868d6abb7 à ceb63e8a1 | Six mises à jour annuelles des en-têtes de droits d'auteur. Le modèle de source d'événements est stable — le système d'identité basé sur UUID, les propriétés doubles de couleur/apparence, les indicateurs d'intégration du sélecteur et le modèle d'événements basé sur des modèles couvrent tous les besoins de configuration de source d'événements. |