Config.java@JsonRawValue empêche le double échappement du texte des rappels JavaScript, @JsonIgnore masque les modèles Wicket internes de la sérialisation, et @JsonProperty contrôle le nommage des champs.Sept modèles de rappel utilisent IModel<String> — l'abstraction de modèle de Wicket pour les valeurs dynamiques. Chaque accesseur de rappel est annoté avec @JsonRawValue, ce qui indique à Jackson d'insérer directement le contenu textuel du modèle dans la sortie JSON sans le mettre entre guillemets. Ceci est crucial car les chaînes de rappel sont des corps de fonctions JavaScript (par exemple, function(event, delta, revertFunc) { ... }) et doivent apparaître comme du code brut dans l'initialisation de FullCalendar, et non comme des chaînes entre guillemets. Les méthodes setter offrent une commodité (setEventDrop(String) encapsule dans Model.of()) et une version avancée (setEventDropModel(IModel) pour les modèles dynamiques).
L'utilisation de IModel pour les scripts de rappel permet une génération dynamique de scripts — essentielle car ces scripts contiennent des URL de rappel Ajax Wicket qui changent entre les requêtes (en raison des jetons anti-cache et du versionnage des pages). La méthode setupCallbacks() dans FullCalendar.java remplit ces modèles avec le texte de script généré, et le mécanisme de résolution de modèle de Wicket garantit des valeurs fraîches à chaque rendu.
Utilise les types Joda-Time (LocalTime pour minTime/maxTime) qui sont sérialisés via les sérialiseurs personnalisés dans AbstractFullCalendar. L'énumération ColumnFormat correspond aux options de format d'en-tête de colonne de FullCalendar pour les vues jour, semaine et mois.
La méthode add(EventSource) retourne this, permettant une configuration en chaîne. Plusieurs sources d'événements peuvent être ajoutées de manière fluide : new Config().add(holidaysSource).add(meetingsSource).
| Commit | Ce qui a changé |
|---|---|
868d6abb7 à ceb63e8a1 | Six mises à jour annuelles des en-têtes de droits d'auteur. Le modèle de configuration est resté stable — tous les paramètres FullCalendar nécessaires à l'application sont capturés dans cette classe, et aucune nouvelle option de configuration n'a été requise au-delà de la conception initiale. |