Retour : Page Principale > sommaire applications > applications GWT
Ici sont répertoriés les problèmes liés à GWT et la solution trouvée pour les résoudre si elle existe :
Piège n°1 : "On croit que ça marche, mais en fait ça marche pas !" (voix de Rainer Z)
Dans eclipse - clic droit sur le projet -> exporter -> java -> JAR
- cocher "exporter les fichiers sources et les ressources Java"
- cocher "ajouter des entrées de répertoire"
Ne sélectionner que le contenu du module src (pas le dossier war, etc...)
Pour ajouter le module ainsi créer au projet.
Clic droit sur le projet -> propriétés -> chemin de compilation -> bibliothèques
- Cliquer sur ajouter jar externe
- Ajout le chemin vers la ligne "<inherits name='org.tela_botanica. MonProjet'/>" (ou name est le chemin vers le fichier xml du module)
dans le fichier monprojet.gwt.xml de votre projet GWT
Ceci est du à une incompatibilité de Firefox 3.6 avec ce plugin.
Pour résoudre ceci, rendez vous sur cette page
Ou bien téléchargez ce magnifique plugin compilé par mes soins gwt-dev-plugin.xpi
Pièges et conseils de développement pour une application GWT
OBSOLETE (2017) - ces informations sont considérées comme n'ayant plus cours en 2017
Ici sont répertoriés les problèmes liés à GWT et la solution trouvée pour les résoudre si elle existe :
Piège n°1 : "On croit que ça marche, mais en fait ça marche pas !" (voix de Rainer Z)
Créer un module pour GWT
Dans eclipse - clic droit sur le projet -> exporter -> java -> JAR
- cocher "exporter les fichiers sources et les ressources Java"
- cocher "ajouter des entrées de répertoire"
Ne sélectionner que le contenu du module src (pas le dossier war, etc...)
Pour ajouter le module ainsi créer au projet.
Clic droit sur le projet -> propriétés -> chemin de compilation -> bibliothèques
- Cliquer sur ajouter jar externe
- Ajout le chemin vers la ligne "<inherits name='org.tela_botanica. MonProjet'/>" (ou name est le chemin vers le fichier xml du module)
dans le fichier monprojet.gwt.xml de votre projet GWT
L'OOPHM ne fonctionne pas dans firefox et demande l'installation du developper plugin alors que celui est installé
Ceci est du à une incompatibilité de Firefox 3.6 avec ce plugin.
Pour résoudre ceci, rendez vous sur cette page
Ou bien téléchargez ce magnifique plugin compilé par mes soins gwt-dev-plugin.xpi
Connecter le débugger eclipse à l'application GWT
- modifier le shell pour ajouter les arguments (pour java 5 ou sup):
- Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport (interwiki inconnu)=dt_socket,server=y,address=3408,suspend=y
- configurer eclipse pour se connecter en Remote sur localhost/port 3408 et en ajoutant vos sources
- lancer le shell, l'application attends une connection avant de se lancer :
- > lancer le debug eclipse
- Voir le site http://www.screaming-penguin.com/node/7353 => WTF, c'est un site militaire indien ??? (Mathias, 05/2015)
Différence de rendu entre le mode hosted et Firefox
Le mode hosted et la version compilée n'ont pas forcément le même comportement et la plupart du temps cela peut être révélateur d'un problème dans le code (firefox est plus tolérant sur certaines erreur que le navigateur GWT)Un composant graphique ne se crée pas ou ne s'affiche pas
Plusieurs solutions et raisons possibles :- Dans le constructeur on a essayé d'accéder à quelque chose qui n'était pas encore instancié (tous les composants semblent être "lazy rendered", ce qui peut poser des problèmes). Dans ce cas là il faut isoler la partie du code qui pose problème et décaler son exécution juste avant l'affichage final du composant (avec un PanelListener par exemple et la méthode onShow)
- La taille a mal été définie : si le composant à une taille relative et qu'aucun de ses parents n'a de taille précisément définie alors il aura une taille de 0. On peut tester si le problème vient de la en donnant une taille fixe en pixel au composant et en vérifiant s'il apparaît alors.
- Si le conteneur de l'élément a un BorderLayout, vérifier si on a bien mis quelque chose dans la zone centrale si ce n'est pas le cas, ça ne s'affichera pas correctement, l'ordre d'insertion des éléments est important aussi.
TabPanel : un des onglets affiche le contenu des précédents
- Problème : la classe principale étendait TabPanel
- Solution : la classe principale étend LayoutContainer, auquel j'ajoute un TabPanel
Des éléments verticaux ne s'empilent par correctement ou ont des tailles incorrectes
Il faut utiliser le RowLayout au lieu du VerticalLayout (qu'on serait tenté d'utiliser vu son nom), car il fonctionne mieux et permet aussi de spécifier des tailles en pourcentages.Bugs dans Eclipse avec GWT
EventObject, une classe assez utilisée pour la gestion des évènement du dom, pose des problèmes à Eclipse qui n'arrive pas à importer automatiquement le package correspondant (même en cliquant sur la croix rouge dans le fichier, il ne propose rien), il faut donc rajouter l'import à la main : import com.gwtext.client.core. EventObject;Changer l'aspect de l'application
- Il faut modifier les images dans le répertoire /js/ext/ressources/images avec lesquelles sont construites les ongles et les boutons et les dégradés des en têtes de fenêtre.
- Modifier aussi le fichier CSS ext-all.css (ou recopier les règles dans un fichier qu'on ajoutera) situé dans /js/ext/ressources/css/ qui contient les couleurs des bordures des fenêtres et des composants