EN · DE · RU · FR · ES

#2781: EventManager.java

projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/EventManager.java Service Java (Recherche d'événements FullCalendar) · projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/EventManager.java 60 lignes · 19 code · 33 commentaires · 8 vides
Un service de recherche qui résout les événements FullCalendar et les sources d'événements par leurs identifiants. Lorsque le client FullCalendar envoie un rappel Ajax avec un ID d'événement et un ID de source (par exemple, un utilisateur a cliqué ou fait glisser un événement), le gestionnaire côté serveur utilise ce gestionnaire pour localiser les objets Event et EventSource correspondants. La recherche parcourt les sources d'événements configurées du calendrier (en comparant les UUID via Objects.equal) et délègue à EventProvider de chaque source pour trouver l'événement spécifique. Lève des exceptions typées (EventSourceNotFoundException, EventNotFoundException) pour les ID non trouvés.

Architecture

Chaîne de recherche

Résolution en deux étapes : getEventSource(String id) parcourt les sources d'événements du calendrier (depuis Config.getEventSources()) en comparant l'UUID de chaque source à l'aide de Objects.equal — l'assistant d'égalité null-safe de Wicket. En cas de correspondance, retourne la source ; sinon, lève EventSourceNotFoundException. getEvent(String sourceId, String eventId) résout d'abord la source, puis appelle source.getEventProvider().getEventForId(eventId) — déléguant la recherche d'événement au fournisseur de la source (généralement une implémentation basée sur DAO). Si le fournisseur ne trouve pas l'événement, il lève EventNotFoundException.

Constructeur package-privé

Le constructeur est package-privé — seul FullCalendar peut créer un EventManager (via getEventManager()). Cela garantit que le gestionnaire est toujours associé à une instance de calendrier spécifique et à sa configuration.

Utilisation dans les rappels

Ce gestionnaire est le pont entre les paramètres de rappel Ajax (qui transportent des ID sous forme de chaînes) et les objets du domaine Java. Par exemple, lors du traitement d'un rappel de dépôt d'événement, le gestionnaire appelle getEventManager().getEvent(sourceId, eventId) pour récupérer l'objet événement concerné, mettre à jour ses heures dans la base de données et renvoyer une réponse au client.

Historique Git

CommitCe qui a changé
868d6abb7 à ceb63e8a1Six mises à jour annuelles des en-têtes de copyright. La logique de recherche est restée stable — le modèle de résolution en deux étapes ID→Source→Événement couvre tous les scénarios de rappel, et aucune méthode de recherche supplémentaire n'a été nécessaire.