EN · DE · RU · FR · ES

#2778 : CalendarResponse.java

projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/CalendarResponse.java Constructeur de réponse Java (commandes Ajax FullCalendar) · projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/CalendarResponse.java 110 lignes · 48 code · 43 commentaires · 19 vides
Une API fluide pour envoyer des commandes du serveur Wicket au client JavaScript FullCalendar en réponse aux rappels Ajax. Chaque méthode compose une invocation JavaScript basée sur jQuery ciblant l'élément DOM du calendrier ($('#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.

Architecture

Modèle de constructeur de commandes

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).

Commandes disponibles

Note d'architecture : Optimisation d'un seul événement

La 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.

Historique Git

CommitCe qui a changé
868d6abb7 à ceb63e8a1Six 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.