EN · DE · RU · FR · ES

#2780 : Event.java

projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/Event.java Modèle Java (Événement FullCalendar) · projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/Event.java 186 lignes · 108 code · 33 commentaires · 45 vides
Classe de modèle canonique représentant un événement de calendrier unique dans l'intégration Wicket FullCalendar. Correspond directement aux champs de l'objet Événement JavaScript de FullCalendar : identifiant unique, titre, indicateur journée entière, dates de début/fin (sous forme de DateTime Joda-Time), lien URL optionnel, nom de classe CSS, indicateur de modifiabilité, quatre propriétés de couleur (texte, fond, bordure et une couleur générale), et un champ opaque payload pour attacher des données de domaine sérialisables arbitraires. Chaque mutateur retourne this pour une construction fluide. Cet objet est sérialisé en JSON par Jackson et envoyé au client dans le cadre de la réponse d'une source d'événements.

Architecture

Identité de l'événement

Le champ id sert d'identifiant unique et est utilisé par FullCalendar pour le suivi des événements (persistance du glisser-déposer, suppression d'événement). Les événements sans ID sont traités comme éphémères par le client. L'ID correspond généralement à une clé primaire de base de données (par exemple, l'ID de ligne d'un événement de calendrier en base).

Propriétés de couleur

Quatre champs de couleur offrent un contrôle visuel granulaire : color (texte et bordure), backgroundColor, borderColor et textColor. Si seul color est défini, FullCalendar l'utilise pour tous les aspects visuels. Les propriétés séparées permettent de surcharger des aspects spécifiques tout en héritant des autres. Ce sont des chaînes de couleur CSS (hex, rgb ou noms de couleur).

Modèle de charge utile (Payload)

Le champ payload (type Serializable) est un point d'extension pour attacher des données spécifiques à l'application aux événements du calendrier. Par exemple, un événement de calendrier ProjectForge pourrait porter une référence à l'entité de base de données (saisie de temps, demande de congé, jalon de projet) que l'événement représente. La charge utile parcourt l'ensemble du cycle aller-retour : serveur → JSON → client → rappel → serveur, permettant aux gestionnaires côté serveur de récupérer l'objet domaine associé à un événement cliqué ou déplacé.

Utilisation de Joda-Time

Les heures de début et de fin utilisent DateTime de Joda-Time (et non java.util.Date), offrant une connaissance du fuseau horaire qui manque à java.util.Date. Les sérialiseurs personnalisés dans AbstractFullCalendar convertissent ces données en chaînes ISO-8601 que le client JavaScript de FullCalendar comprend nativement.

Historique Git

CommitCe qui a changé
868d6abb7 à ceb63e8a1 Six mises à jour annuelles des en-têtes de droits d'auteur. Le modèle d'événement est resté stable, reflétant la maturité de la spécification de l'objet Événement FullCalendar — toutes les propriétés standard sont couvertes, et le point d'extension payload gère les données personnalisées.