CalendarResponse.java$('#calendarId').fullCalendarExt("commande", args...)) et l'ajoute à AjaxRequestTarget de Wicket. Il s'agit du canal de commande serveur-vers-client pour la manipulation du calendrier : rafraîchir les événements, basculer la visibilité des sources d'événements, supprimer des événements, naviguer vers des dates et effacer les sélections — le tout piloté par des gestionnaires d'événements côté serveur qui réagissent aux interactions utilisateur.Chaque méthode publique retourne CalendarResponse pour le chaînage. Le modèle permet de composer plusieurs commandes de calendrier dans un seul gestionnaire de rappel :
response.clearSelection().gotoDate(date).refetchEvents();
Le mécanisme sous-jacent génère des chaînes JavaScript via execute(args...), qui utilise String.format pour produire un sélecteur jQuery ciblant l'ID de marquage Wicket du calendrier, et ajoute le JavaScript à AjaxRequestTarget. L'assistant q() encapsule les arguments entre guillemets simples (ou produit null pour les valeurs nulles).
refetchEvents() — demande à FullCalendar de recharger les données d'événements depuis toutes les sourcesrefetchEvents(EventSource) — recharge une source d'événements spécifique en la désactivant puis en la réactivantrefetchEvent(EventSource, Event) — espace réservé pour un rafraîchissement optimisé d'un seul événement (actuellement revient à un rafraîchissement complet de la source avec un commentaire TODO)toggleEventSource(EventSource, boolean) — active ou désactive la case à cocher de visibilité d'une source d'événementsremoveEvent(Event) — supprime un événement spécifique du calendriergotoDate(Date) — navigue la vue du calendrier vers une date spécifiqueclearSelection() — efface la sélection de plage de dates mise en évidenceLa méthode refetchEvent contient un commentaire TODO reconnaissant l'implémentation actuelle non optimisée (rechargement complet de la source). Le commentaire décrit l'optimisation prévue : rechercher l'événement affecté dans le tampon côté client et ne recharger que cet événement. Il s'agit d'un TODO de performance reconnu pour les calendriers comportant de nombreux événements.
| Commit | Ce qui a changé |
|---|---|
868d6abb7 à ceb63e8a1 | Six mises à jour annuelles des en-têtes de droits d'auteur. L'ensemble des commandes et l'API fluide sont restés stables — le vocabulaire de commandes du script d'extension FullCalendar couvre les besoins de l'intégration du calendrier, et aucune nouvelle commande serveur-vers-client n'a été nécessaire. |