Comment implanter un ImageFactory dans une application GWT?

Catégorie: widgets
Mots clés: image

Pour l'affichage d'images, GWT utilise un procédé appellé bundles. Ce procédé est vraiment efficace et permet d'afficher des images dans une page web de manière très optimisée. C'est une bonne nouvelle pour l'utilisateur, Par contre, l'écriture des bundles est assez long et laborieux. Voila une moins bonne nouvelle pour le développeur. Par contre, il est possible d'automatiser l'écriture des bundles et d'implanter un ImageFactory. L'article suivant explique comment automiser ce procédé.

Comment fonctionne les bundles de GWT?

Principe: une image de 100KB comprend moins de temps à télécharger que cent images de 1KB.  GWT fusionne les images, puis les traite coté client.  Magique!

Pour plus d'infos, voir page GWT.

Par contre, il faut implanter deux classes (X,Y) et à chaque fois que nous voulons ajouter une nouvelle image, ajouter une reference dans chacun de ces deux fichiers. Long et laborieux pour l'utilisateur. 

Ce que nous désirons comme résultat:

En tant que client de lAPI, nous désirons quelque chose comme

Image image = ImageFactory.getImage(Image.ARROW_LEFT);
widget.add(image);

Afin de profiter du code completion de l'IDE Eclipse. Lorsqu'on tape Image. pusi on fait (CTRL+SPACE), l'ensemble des images nous est presenté.  Magique!

Ce que nous pouvons faire:
Le nom de chaque entrée de Bundle est calculé à partir du nom du fichier image.

Comment implanter cette solution

voir classe.  Voir projet windraw.gen.images

Comment améliorer cette solution

 .TODO pour chaque image :
   creer une image grisé
   creer une image en plus petit format (16x16, 32x32, etc). 


Retour à la table des matières