Programmation:Google app GWT
Un article de MacodaWiki.
Sommaire |
[modifier]
Introduction
L'objectif de cette page est de tracer ce que j'ai compris et retenu pour pouvoir le refaire dans x semaines, quand j'aurais tout oublié ;-)
[modifier]
Pré-requis
- Google Engine (installé dans C:\Program Files\Google\google_appengine)
- Google Web Toolkit (GWT) - Je suis avec la 1.5 (installé dans C:\Program Files\Google\GWT15)
- Eclipse - Version spéciale avec WTP pour Cypal - J'ai pris "Web Tools Platform All-In-One Packages" - Sans doute plus qu'il ne faut.
- Python - Je suis avec la 2.5.2
- Java 1.5
- Cypal Studio
- L'extension Python PvDev Extension
[modifier]
Information
- J'ai utilisé la documentation suivante et celle-là ] pour configurer pyDev.
- Attention, il faut d"abord télécharger MyLyn (voir cette page). Attention, dans l'URL, il faut remplacer le XY par les valeurs en vigueur. Regardez le contenu de la page.
- J'ai utilisé cette documentation pour installation CyPal
[modifier]
Ajax via Python
Ce code permet de faire des appels "AJAX" depuis GWT vers un code python tournant sur Google App Engine. Voir http://daily.profeth.de/2008/04/google-app-engine-eclipse-pydev.html pour une explication.
[modifier]
Developpement
[modifier]
Utilisation de CyPal
- Créer un projet => File->New->Project
- Choisir Web -> Dynamic Web Project
- Nom : EssaiCypal
- Project Content : Use Default
- Configuration : Cypal Studio for GWT (1.4 or earlier)
- Générer un exemple Google : File->New->Examples->GWT->Samples.
- Choisir Hello
- Lancer le programme
- Run->Open Run Dialog/Open Debug Dialog
- Double-click sur "Gwt Hosted Mode Application".
- Choisir son module
- Cliquer sur "Run"
[modifier]
Utilisation code GWT sur Google Engine
- Compiler l'exemple Hello de GWT
- Lancer C:\Program Files\Google\GWT15\samples\Hello\Hello-compile.cmd
- Copier le résultat vers le répertoire Google Engine
- Répertoire C:\Program Files\Google\GWT15\samples\Hello\www\
- vers
- Répertoire C:\Program Files\Google\google_appengine\hello\gwt
- Modifier le fichier C:\Program Files\Google\google_appengine\hello\app.yaml
application: helloworld version: 1 runtime: python api_version: 1 handlers: - url: / static_files: gwt/Hello.html upload: gwt/Hello.html - url: /(.*) static_files: gwt/\1 upload: gwt/(.*) # - url: /.* # script: helloworld.py
- Lancer l'exemple c:\python25\python.exe dev_appserver.py hello\
- Se connecter sur le serveur local http://localhost:8080/
- Un bouton "Click me" doit apparaître.
[modifier]
Utilisation de l'exemple pgr (lib python / GWT / Ajax)
- Télécharger et décompacter pgr-example.zip dans C:\Program Files\Google\google_appengine\pgr-example
[modifier]
A la main
[modifier]
Preparer le code GWT
- Créer le fichier "PgrExample-compile.cmd" dans le rep pgr-example
Mettre tout sur une seule ligne
@java -Xmx256M -cp "%~dp0\src-gwt;%~dp0\bin; C:/Program Files/Google/GWT15/gwt-user.jar; C:/Program Files/Google/GWT15/gwt-dev-windows.jar" com.google.gwt.dev.GWTCompiler -out "src-py\gwt" %* pl.simpatico.pgrexample.PgrExample
- Créer le fichier "PgrExample-shell.cmd" dans le rep pgr-example
Mettre tout sur une seule ligne
@java -Xmx256M -cp "%~dp0\src-gwt; %~dp0\bin;C:/Program Files/Google/GWT15/gwt-user.jar; C:/Program Files/Google/GWT15/gwt-dev-windows.jar" com.google.gwt.dev.GWTShell -out "src-py\gwt" %* pl.simpatico.pgrexample.PgrExample/index.html
- Lancer le programme PgrExample-compile.cmd
- Puis le programme PgrExample-shell.cmd
- Le navigateur intégré de GWT doit se lancer avec trois boutons.
- On peut cliquer sur les boutons, mais il y a un message d'erreur.
[modifier]
Utilisation code Google Engine et GWT
- Modifier le fichier app.yaml
application: kpch version: 1 runtime: python api_version: 1 handlers: - url: / static_files: gwt/pl.simpatico.pgrexample.PgrExample/index.html upload: index.html - url: /(.*\.(gif|png|jpg|html|js)) static_files: gwt/pl.simpatico.pgrexample.PgrExample/\1 upload: (.*\.(gif|png|jpg|html|js)) - url: /services script: pgr-example.py
- Pour lancer le tout :
- c:\python25\python.exe dev_appserver.py pgr-example\src-py\
- Se connecter sur http://localhost:8080/
[modifier]
Avec utilisation d'Eclipse
- Lancer Eclipse et choisir "File => Import => General => Existing Projects into Workspace"
- Choisir le répertoire de décompression comme "root directory"
- Ne pas cocher "Copy files into workspace"
- Ensuite changer les propriétés du projets
- Java Build Path -> Libraries
- Add Variable => GWT_HOME/gwt-servlet.jar
- Add Variable => GWT_HOME/gwt-user.jar
- Remove les deux foireux
- Configuration pour lancement de la partie GWT
- Sélectionner le projet dans le "project explorer"
- Run AS => Java Application
- Cliquez sur la petite feuille en haut à gauche pour créer une nouvelle config
- Nommez la configuration "Lancement de la partie GWT"
- Main
- Nom : pgr-example2 (déjà rempli)
- Main Class : com.google.gwt.dev.GWTShell
- Arguments
- Program Arguments : -out src-py\gwt pl.simpatico.pgrexample.PgrExample/index.html
- VM Argument : -Xmx256M
- Classpath
- Cliquer sur "User Entry"
- => "Add external JAR" - Choisir "C:\Program Files\Google\GWT15\gwt-dev-windows.jar"
- => "Advanced" => Add Folder - Choisir src-gwt dans pgr-example
- Classer dans l'ordre : src puis default classpath puis gwt-dev
- Cliquez sur "Apply" puis sur "Run"
- Configuration pour la COMPILATION de la partie GWT
- Même chose que pour le lancement, sauf :
- Main Class : com.google.gwt.dev.GWTShell
- qui devient
- Main Class : com.google.gwt.dev.GWTCompiler
- Program Arguments : -out src-py\gwt pl.simpatico.pgrexample.PgrExample/index.html
- qui devient
- Program Arguments : -out src-py\gwt pl.simpatico.pgrexample.PgrExample
- Configuration pour le lancement de la partie Google Engine
- Sélectionner le projet dans le "project explorer"
- Run AS => Open Run Dialog
- Choisir "Python Run"
- Cliquez sur la petite feuille en haut à gauche pour créer une nouvelle config
- Main
- Project : pgr-example2 (le choisir avec Browse)
- Main module : C:\Program Files\Google\google_appengine\dev_appserver.py
- Arguments
- Program Arguments : "C:\Program Files\Google\google_appengine\pgr-example\src-py/" (avec les guillemets)
- Cliquez sur "Apply" puis sur "Run"
En cours
- http://daily.profeth.de/2008/04/google-app-engine-eclipse-pydev.html pour le lancement du google engine
[modifier]
A VOIR
- http://daily.profeth.de/2008/04/google-app-engine-eclipse-pydev.html Explique comment faire un projet Google Engine avec Eclipse et PyDev
- Utilisation de CyPal Studio for GWT
