What is GWT?
The Google Web Toolkit (GWT) is an AJAX development tool from Google, targeted for Java Developers. Web applications (both GUIs and RPCs) are written in Java using the GWT API.
The Java files are then compiled into compact, obfuscated, browser-specific JavaScript files. A small bit of loading JavaScript determines which browser-specific script file gets used depending on the user-agent. The API libray is licensed under the Apache 2.0 license. The GWT-Compiler was originally licensed under a proprietary license, but the most recent version is also licensed under the Apache 2.0 license.
GWT emphasizes reusable, efficient solutions to recurring Ajax challenges, namely asynchronous remote procedure calls, history management, bookmarking, and cross-browser portability.
And what is "gwt-toolbox"?
"gwt-toolbox" is a bunch of tools that allow developers to build flexible GWT applications.
The project is divided into several modules:
1. toolbox-core
This is the core module of the project. It contains a MVC framework you can use in order to build more flexible applications.
This framework is highly based on the "observer" design pattern that notifies the UI when the model is changed.
2. toolbox-remoting
In this module, you can find all needed classes to build your distributed applications.
For the moment, only the RPC protocol is supported for the service layer.
3. toolbox-utils
This module contains several helper classes used by the framework.
Deeper in "gwt-toolbox"...
1. Fundamentals
An application based on "gwt-toolbox" should be divided into several parts:
- Models
- Views
- Controllers
- Services
The main entry point of a "gwt-toolbox" application is the AbstractEntryPoint class. When the application starts up, the AbstractEntryPoint instance calls the main controller of the application: The ApplicationController. This last is in charge of registering, in their own registry, all models, views, controllers and services needed by the application. After that, the main controller displays the main view of the application.
Due to the fact that a view can observe one or more models (these associations are made by the application controller), when a model is modified, the observing views are notified and can react in consequence.
2. Class diagram
TODO
3. Samples
The following samples are embedded in the "gwt-toolbox" distribution. To build these samples (war, ...), Maven2 should be installed and configured on your computer.
After these fancy stuff, you simply have to execute the following command in your favorite shell: mvn clean install.
3.1. Sample 1 - Asynchronous "Hello World!!!"
The famous example built with "gwt-toolbox" and in its asynchronous version.
http://code.google.com/p/gwt-toolbox/wiki/HelloWorldAsyncWithGwtToolbox
The demo is available at this address
3.4. A full application to manage your contacts: "gwt-contact"
TODO
Repository Maven2
Used to develop maven2 applications with "gwt-toolbox".
http://gwt-toolbox.googlecode.com/svn/trunk/maven_repo/
In order to use our repository, you have to add the following lines in your pom.xml file:
<pluginRepositories> <pluginRepository> <id>gwt-toolbox-plugins</id> <url>http://gwt-toolbox.googlecode.com/svn/trunk/maven_repo/</url> </pluginRepository> </pluginRepositories> <repositories> <repository> <id>gwt-toolbox</id> <url>http://gwt-toolbox.googlecode.com/svn/trunk/maven_repo/</url> </repository> </repositories>
Finally, add the correct dependency to "gwt-toolbox" in your pom.xml file. For example:
<dependency> <groupId>org.sempere.gwt-toolbox</groupId> <artifactId>toolbox-remoting</artifactId> <version>0.1</version> </dependency>