Google Web Toolkit
From The Unofficial Google Wiki
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.
Contents |
[edit] Online Sample Applications
These live sample applications have begun to scratch the surface of what can be done with the GWT framework.
- Original Google Samples
- Texas Holdem Poker
- Tic Tac Toe
- GWT Hangman
- Simple Paint Program
- Scriptaculous Effect Wrapper Demo
- Rich Text Editor
- Guess Number
- Sudoku Solver
- Free online sudoku game - GSudokr
- MathEclipse Computer Algebra
- XHTML+CSS Reference by Example
- TheRandomHomepage
- Home Value Calculator
- GWTChismes demo: Calendar Picker, Interval Selector, etc
- gwt-dnd: Drag-and-Drop library and interactive demo
- gwt-voices: Sound library and interactive demo
- gwt-log: Logging library and interactive demo
- Hornet Blast game with sound effects.
- GWT-Ext Feedreader demo
- Advanced GWT Components demo
- Online Widget Designer
- Collaborative Web Drawer
[edit] 3rd Party Libraries
- Ext GWT - GWT widget library based on Ext Js look and feel
- GWT-Ext - Wrapper library for Ext JS
- gwt-dnd - Drag and Drop for GWT
- gwt-voices - GWT sound library
- gwt-log - GWT Logging library
- Advanced GWT Components - Rich widgets library
[edit] Widgets
The GWT has only a small set of 20 widgets but it is very easy to extend. There is already a large list of open source extensions. If you have written your own widget then you can add it to the list. If you have no place to host your component then you can save it in this Wiki. If you host it in this Wiki then it will be license under the public domain. If you want save it under LGPL then you can add it to the GWT Component Library.
For a more complete and up to date list see gwtPowered.org.
| Widget | Description | Library / Homepage | License |
|---|---|---|---|
| GWT Canvas | Canvas support for the Google Web Toolkit. This widget runs natively on IE, Firefox, Opera, Safari... no more excanvas needed :) Please note that GWT 1.5 M1 or higher is mandatory! | gwt-canvas | Apache License 2.0 |
| Login Panel | A widgets that provides controls relevant to a login prompt | GWT-Stuff | Apache License |
| Rich Text Area | Another WYSIWYG HTML Editor with font, color, link ... features | GWT Widgets | LGPL |
| Rich Text Editor | A WYSIWYG HTML Editor. | GWT Addons | LGPL or Apache 2.0 |
| HTML (Rich Text) Editor | WYSIWYG HTML (Rich Text) Editor Widget | HTML (Rich Text) Editor Widget | Apache 2.0 |
| Image Button | A Image Button with Tooltip. CSS L&F for default, roll over and pressed. | GWT Addons | LGPL or Apache 2.0 |
| Tooltip | A real tooltip that show after a second on the mouse position. | GWT Addons | LGPL or Apache 2.0 |
| FileUploadField | A file upload form field widget. | GWT Widget Library | LGPL |
| FormPanel | An HTML form widget. | GWT Widget Library | LGPL |
| ImageButton | Use an image as a button. | GWT Widget Library | LGPL |
| OptionList | A ListBox extension. | GWT Widget Library | LGPL |
| PNGImage | Image widget that overcomes PNG browser incompatabilities. | GWT Widget Library | LGPL |
| RoundedPanel | Rounded corners like GMail | gwt.bouwkamp.com | Apache License 2.0 |
| Future Earth Gwt Library | A collection of widgets (Calander with week and month view) | Project Page | Apache License 2.0 |
| Canvas Widget | A Graphics Widget | GWT Component Library | LGPL 2.1 |
| Round Corners | Border with round corners | GWT Component Library | LGPL 2.1 |
| Simple Calendar | A embedded calendar | GWT Component Library | LGPL 2.1 |
| RateIt Control | RateIt widget similar to netflix.com, and amazon.com star ratings. You can use mouse and keyboard (left, right, and number keys) to select rating. | GWT Component Library | LGPL 2.1 |
| Script.aculo.us Effects Integration | This component allows you to use Script.aculo.us effects from GWT. | GWT Component Library | LGPL 2.1 |
| Auto-Completion Textbox | A textbox that has a list of string values that will be automatic completed on edit the text. | GWT Component Library | LGPL 2.1 |
| Simple XML Parser | Allows to parse XML with GWT | GWT Component Library | LGPL 2.1 |
| Hyperlink with Image | Hyperlink which allows you to specify Image object as its content. Go ahead, implement your favority rollover effects with it. | GWT Component Library | LGPL 2.1 |
| Tooltip Listener | Allows you to add tooltips (small help messages) to any component that support SourcesMouseEvents interface. | GWT Component Library | LGPL 2.1 |
| Simple Date Picker | A text box and a popup calendar. | Parvinder Thapar | LGPL 2.1 |
| Sortable Table Widget | Client-side sorting of the Table | Parvinder Thapar | LGPL 2.1 |
| GoogleMaps | A widgets that support the Google Map API | GWT - Custom Components | Apache License |
| FlashPlayer | A widget to play flash movies. | GWanTed | LGPL |
| LegendPanel | A widget to layout widgets in a legend way. | GWanTed | LGPL |
| HttpRequestExt | To do sync HTTPRequest downloads. | GWanTed | LGPL |
| Navigator | A simple wrapper for the navigator DOM object. | GWanTed | LGPL |
| ExternalHyperlink | Allow you to use external hyperlinks. | GWanTed | LGPL |
| AbstractJavascriptClass | This class is a base class that let wrap a javascript object in an external javascript file in a GWT class. | GWanTed | LGPL |
| ToolItem | An ImageButton widget alternative. | GWanTed | LGPL |
| RowPanel | Think VerticalPanel with more layout flexibilty. | GWT Tk | Apache 2.0 |
| ColumnPanel | Think HorizontalPanel with more layout flexibilty. | GWT Tk | Apache 2.0 |
| DropDownPanel | An expandable panel with a header like "Labels" in Gmail. | GWT Tk | Apache 2.0 |
| SimpleHyperLink | A simple anchor widget. No DIV messing up text flow, no history tokens added to the location field. | GWT Tk | Apache 2.0 |
| GlassPanel | A stylable panel which preventa interaction with the entire document ("light box" effect). | GWT Tk | Apache 2.0 |
| ModalDialog | A modal dialog featuring focus containment, "light box" effect, automatic centering and more. | GWT Tk | Apache 2.0 |
| AlertDialog | A modal dialog tailored to conveniently displaying alert messages. | GWT Tk | Apache 2.0 |
| Slider Widget | A simple slider widget to enter numeric values. | Sphene's GWT Widgets | LGPL |
| LightboxImage Widget | It's a simple, lightweight widget, that overlays image on top of browser window with amazing visual effects. | TheRandomHomepage Widgets | Apache 2.0 |
| IntervalSelector | Select easily an interval of time between two dates. Configurable: internationalization, limits, layout etc. | GWTChismes | Apache 2.0 |
| Calendar DatePicker | Calendar dialog for date selection, fully configurable. It also has useful static methods to manipulate Dates. | GWTChismes | Apache 2.0 |
| Wait Dialog | A dialog that covers the page with a semitransparent layer and shows a message and an animated image. | GWTChismes | Apache 2.0 |
| Print Button | A simple button to send the page to the printer. The button is hidden for few seconds for avoid printing it. | GWTChismes | Apache 2.0 |
| Alert Dialog | An alert dialog | GWTChismes | Apache 2.0 |
| GWTCButton | Extension of gwt-button that supports mouse events. It adds a class when the mouse is over the button (this is a workaround for IE6) | GWTChismes | Apache 2.0 |
| GWT2SWF | Flash/Flex Widget for GWT | GWT2SWF | Apache 2.0 |
| HTMLTemplateWidget | Widget that allows you to embed html files in your GWT applications | HTMLTemplateWidget | Apache 2.0 |
| EditableGrid | The grid that allows content editing | Advanced GWT Components | Apache 2.0 |
| HierarchicalGrid | The grid that allows representing complicated data models as a structure of subgrids | Advanced GWT Components | Apache 2.0 |
| MasterDetailPanel | Master-Detail dependency implementation for a tree of grids. | Advanced GWT Components | Apache 2.0 |
| Pager | The widget for paging. | Advanced GWT Components | Apache 2.0 |
| DatePicker | The localizable date picker. | Advanced GWT Components | Apache 2.0 |
| ComboBox | CSS applicable combo box implementation (not select list!). | Advanced GWT Components | Apache 2.0 |
| SuggestionBox | Extension of the ComboBox that allows loading list items lazily on a change event. | Advanced GWT Components | Apache 2.0 |
[edit] Plugins
The support for the different IDE's and tools is very poor currently. But there are some plugins under construction. Here is a list of such plugins. If we have overlooked one then add it.
- Cypal Studio for GWT A plugin for Eclipse.
- GWT4WTP Construction of a visual designer for Eclipse.
- GWT Studio A plugin for IntelliJ IDEA.
- AJAX Developer Suite A Maven plugin.
- GWT Designer A plugin for Eclipse
- GDevelop A plugin for Oracle JDeveloper
- GWT4NB A plugin for Netbeans IDE
- hibernate4gwt A plugin for hibernate
- VistafeiAn Eclipse based IDE for GWT, similar to Visual Studio
[edit] Tools
- Ant task for GWT
- XDoclet module for GWT Used to generate service interfaces automatically.
- GWanTed Create and use GWT widgets directly from javascript.
[edit] For other languages
- GWTPHP It is a PHP port for GWT Server (RemoteServiceServlet). With GWTPHP you can connect GWT application with PHP. It decode/encode GWT request/response using GWT native data interchange format. No JSON or XMLRPC needed.
[edit] Compare GWT with other AJAX Frameworks
| Feature | GWT | ZK | Echo2 | Java2Script | Dojo Toolkit |
|---|---|---|---|---|---|
| Open Source | Yes | Yes | Yes | Yes | Yes |
| Runtime License | Apache 2 | GPL + Commercial | LGPL | LGPL | BSD |
| Compiler License | Apache 2 | GPL + Commercial | LGPL | LGPL | - |
| Place of program logic | Client (Optional Server for RPC) | Server | Server | Client | Client |
| Programming Language | Java - GWT API | XML | Java | Java - SWT API | Javascript |
| Ajax program download size | Increment with Program Logic | Const | Increment with Program Logic | Increment with Program Logic | Increment with Program Logic |
| Count of Widget | 40 |
[edit] Tutorials
- Jump Start Your AJAX Development with the Google Web Toolkit
- Google Web Toolkit on xml.com
- Exploring the Google Web Toolkit on IBM developerWorks
- Getting started with GWT, the manual way Creating a GWT project from scratch
- Google Web Toolkit: Taking the Pain Out of Ajax GWT Book by Ed Burnette
-
Publishing a GWT app on Tomcat in EclipseOrphaned link, orphaned student? Entry for "SMITH, LEE ROBERT" exists but goes nowhere. www.mines.edu
[edit] Links
- Official home page
- GWT Site Blog devoted to the Google Web Toolkit
- GWT Lens on Squidoo
- GWTiger Framework for GWT Application Framework for developing Enterprise applications using GWT
- GWT Small Guide A guide for developing dynamic applications using GWT at the client side and PHP & MYSQL for the server side.
- gwtPowered.org Ed Burnette's GWT resources site.
- GWT API Documentation JavaDoc extracted from gwt-user.jar
- GWT Wiki
- GWT API Map
- Tracking News on GWT
- Rocket-gwt Lots of components for all aspects of gwt development, including widgets thru to a high level code generation abstraction.
- Google Web Toolkit Solutions by David Geary and Rob Gordon
- December 2007 conference on GWT


