Jul 212009
 

En furetant un petit peu sur le Wiki de Wicket, j’ai découvert cette petite astuce qui concerne le busy indicator

Le ptits gars de Wicket ont très bien fait les choses en pensant à ajouter des fallbacks avant et après leur appel ajax. Ce qui nous donne ce bout de code javascript :

Il ne nous reste donc plus qu’a faire en sorte d’utiliser cela.

BusyIndicatorPanel.html

On commence par le panel que l’on souhaitera afficher lors d’une requete Ajax. J’ai dans un premier temps envie d’un petit panel qui s’affichera en haut à droite de l’écran.

BusyIndicatorPanel.css

Le bout de css qui permettra d’afficher notre panel où on le souhaite :

BusyIndicatorPanel.java

C’est maintenant que les choses deviennent rigolottes :

Notre classe BusyIndicatorPanel embarque avec elle le fichier CSS, et pour pouvoir utliser l’astuce trouvée sur le wiki, un fichier JS
Sauf que pour que Wicket ajoute l’id html au résultat final, il faut ajouter la ligne setOutputMarkupId(true);. SAuf que en faisant ça Wicket génère un id à la volée.
Il nous faut donc trouver une parade pour que le fichier JS puisse avoir connaissance de cet id. L’utilisation du PackagedTextTemplate nous permet de remplacer à la volée des variables dans le fichier JS initial (ici, la variable ‘markupId’).

BusyIndicatorPanel.js

On utilise donc dans notre ficher JS la variable ${markupId} qui sera remplacée par le PackagedTextTemplate.

Initialement le Busy Indicator n’était disponible que lors des requetes Ajax de l’étape 6 du site d’example.
Mais, comme pour voir faire plaisir j’ai ajouter l’affichage du code source de chaque étape, et que cet affichage se fait dynamiquement via ajax, j’ai généralisé l’utilisation du Busy Indicator à l’ensemble du site.

Et voilà, c’est la fin de cette série d’articles qui vous ont surement permis de vous rendre compte de la facilité avec laquelle on développe un comportement Ajax avec Wicket.

A vous de jouer!

Imprimer cet article Imprimer cet article

Leave a Reply