|
Il y a quelque temps, Google sortait GWT (Google Web Toolkit) un framework java pour générer du javascript et des requêtes Ajax à partir d’un code java. Ainsi permettant à tout développeur java n’ayant pas envie ou de temps a consacrer à l’apprentissage du langage javascript, pourra s’en abstenir.
En effet, un générateur de code parse les contrôles java, les listeners afin de générer le code html et javascript adéquat. L’avantage de cette solution est qu’un développeur java gardera toutes ses habitudes de codage sans avoir à se soucier des incompatibilités qu’il a entre les différents navigateurs pour concevoir son site web. Par ailleurs, ce framework est par ailleurs dans plusieurs applications Google comme Gmail et GoogleEarth.
GWT est téléchargeable à l’adresse suivante :
http://code.google.com/webtoolkit/versions.html
Pour l’utiliser, il faut extraire l’archive, dans ce dossier, créer un dossier de projet, ouvrir une console, puis se positionner dans le dossier de projet.
Afin de créer un projet pour éclipse, il suffit de saisir les commandes suivantes :
Pour créer un projet :
..\projectCreator -eclipse nomDeMonProjet
Pour créer une application web :
..\applicationCreator -eclipse nomDeMonProjet com.gwt.client.MonApplication
Puis, d’importer le projet normalement avec eclipse.
Pour avoir plus de confort, télécharger le plugin pour eclipse a cette adresse :
http://sourceforge.net/projects/googlipse
Et afin de pouvoir prévisualiser le résultat dans eclipse, ajouter la librairie gwt : gwt-dev-windows.jar ou équivalent si vous n’êtes pas sous windows.
Normalement, une application « hello word » a été créé dans la classe : com.gwt.client.MonApplication
Qui a cette apparence :
package com.gwt.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class MonApplication implements EntryPoint {
public void onModuleLoad() {
final Button button = new Button("Click me");
final Label label = new Label();
button.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
if (label.getText().equals(""))
label.setText("Hello World!");
else
label.setText("");
}
});
RootPanel.get("slot1").add(button);
RootPanel.get("slot2").add(label);
}
}
Et un document html qui à globalement cette structure :
<html>
<head>
<title>Wrapper HTML for MonApplication</title>
<meta name='gwt:module' content='com.gwt.MonApplication'>
</head>
<body>
<script language="javascript" src="gwt.js"></script>
<span id="slot1"></span><span id="slot2"></span>
</body>
</html>
Le résultat en exécution est disponible sur cette page :
http://www.myjavaserver.com/~fredo/hellogwt/MonApplication.html
Pour exécuter le projet sans eclipse, il est possible de lancer le fichier MonApplication-shell.
Dans tous les cas, pour créer le fichier javascript et les fichiers nécessaire à l’exécution dans un serveur d’application, il faut lancer le fichier MonApplication-compile.
Comme on le voit dans le code html, on a un élément d’id slot1 et un élément slot2, les deux étant référencés dans le code java, comme les conteneurs d’un bouton et d’un label dont les événements sont gérés par des listeners.
Pour exécuter le projet en local, il suffit de cliquer sur le bouton run d’eclipse, et spécifier la mainclass : com.google.gwt.dev.GWTShell pour le projet courrant, mais dans un cadre autre que le développement, un serveur d’application tel que tomcat sera nécessaire.
|