EN · DE · RU · FR · ES

#2774 : MDefaultAjaxBehavior.java

projectforge-wicket/src/main/java/de/micromata/wicket/ajax/MDefaultAjaxBehavior.java Comportement Ajax Wicket (Extension Micromata) · projectforge-wicket/src/main/java/de/micromata/wicket/ajax/MDefaultAjaxBehavior.java 45 lignes · 11 code · 29 commentaires · 5 vides
Un wrapper léger autour du AbstractDefaultAjaxBehavior de Wicket avec un seul objectif : rendre la méthode protégée getCallbackScript() accessible publiquement. Dans l'API standard de Wicket, getCallbackScript() est protégée et ne peut être appelée que depuis la logique de rendu propre au comportement. L'équipe Micromata avait besoin d'accéder à cette méthode depuis du code externe de câblage de rappel — probablement pour l'intégration FullCalendar ou d'autres liaisons d'événements côté client — et a créé cette sous-classe qui se contente de redéfinir getCallbackScript() pour appeler l'implémentation parente avec une visibilité publique.

Architecture

Le motif de contournement de visibilité

Il s'agit d'un contournement classique de visibilité en Java : lorsqu'une bibliothèque (Wicket) rend une méthode protégée mais que vous devez l'appeler depuis l'extérieur de la hiérarchie d'héritage, vous créez une sous-classe qui redéfinit la méthode et promeut sa visibilité en publique. La méthode redéfinie ne fait rien d'autre que déléguer à super.getCallbackScript(). Ce motif est courant dans les bases de code Wicket où l'encapsulation du framework empêche certains motifs d'intégration.

Pourquoi c'est nécessaire

La méthode getCallbackScript() de Wicket génère l'extrait JavaScript qui invoque l'URL de rappel côté serveur avec les paramètres corrects, les jetons anti-cache et les paramètres Ajax. L'intégration FullCalendar (voir fichiers #2786-2790) a besoin d'intégrer ces scripts de rappel dans le JSON de configuration FullCalendar plutôt que de les attacher comme gestionnaires d'événements DOM. Pour ce faire, le script de rappel doit être extrait du comportement et interpolé dans un contexte différent — ce qui nécessite un accès public à la méthode de génération de script.

Contexte d'utilisation

Référencé depuis le système de rappel FullCalendar dans net.ftlines.wicket.fullcalendar.callback.AbstractAjaxCallback (fichier #2789), qui étend également AbstractDefaultAjaxBehavior et doit manipuler le script de rappel pour l'intégration dans les gestionnaires d'événements du calendrier.

Historique Git

CommitCe qui a changé
868d6abb7 à ceb63e8a1Six mises à jour annuelles des en-têtes de droits d'auteur. La classe elle-même — une simple redéfinition de méthode — n'a jamais nécessité de modification depuis la migration initiale de version Wicket. Son objectif est si étroitement défini que les modifications de l'API de Wicket seraient probablement absorbées sans changement de ce wrapper.