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
- Online Appointment scheduling software. Entirely written in GWT includes Google Maps Integration
- Texas Holdem Poker
- Tic Tac Toe
- GWT Hangman
- Brain Training Game - Dual N Back
- Word Builder Game on 5x5 board in English, Turkish, Italian or French
- Simple Paint Program
- Scriptaculous Effect Wrapper Demo
- Rich Text Editor
- Guess Number
- Sudoku Solver
- Free online sudoku game - GSudokr
- Free online sudoku game - Sudoku-Battle
- MathEclipse Computer Algebra
- XHTML+CSS Reference by Example
- TheRandomHomepage
- Home Value Calculator
- GWTChismes: Calendar Picker, Interval Selector, Progress Bar, etc
- gwt-cal demo - Calendar widget with Google Calendar skin
- 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
- Bookingpad Booking Engine
- taskwriter.com : GTD focused task management
- : Orange Gadget gallery
- Online Drawing with GWT - FarbTube
- Draw graffitis or upload images with this GWT site - Graffiti 2.0
- easy-restaurant-websites.com - Creates a simple website for a restaurant.
- Online feed reader
- QAFE, declarative UI + Declarative SOA + your technology, check the the demo and try out the code. Watch the movies on the main site for development
- Leading real estate web site for Northern Texas
- Nine Letters word game
- GWT Video Presentation System
- A risk clone game with GoogleMaps
[edit] 3rd Party Libraries
- Ext GWT - GWT widget library based on Ext Js look and feel
- GWT-Ext - Wrapper library for Ext JS
- SmartGWT - Wrapper library for SmartClient
- GWT mosaic
- gwt-dnd - Drag and Drop for GWT
- gwt-voices - GWT sound library
- gwt-log - GWT Logging library
- Advanced GWT Components - Rich widgets library
- Rialto GWT - GWT Widget library based on Rialto
- Metawidget - GWT widget that populates itself at runtime with sub-widgets to match properties of business objects
- jquery4gwt - Wrapper library for jquery
[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.
| Widget | Description | Library / Homepage | License |
|---|---|---|---|
| GWT Incubator | The Google Web Toolkit (GWT) Incubator fosters additional widgets and libraries for GWT before they are added to the core toolkit. The project is managed by the GWT engineering team at Google, and is used as a place to share, discuss, and vet future or speculative GWT features. As of 2009/05/12, contains: Widgets, Tables, Logging, Css support, Graphics and Utilities. | google-web-toolkit-incubator/ | Apache License 2.0 |
| 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! NOTE: Moved to GWT Incubator! | gwt-canvas | Apache License 2.0 |
| Login Panel | A widgets that provides controls relevant to a login prompt | GWT-Stuff | Apache License |
| gwt-cal | A calendar widget similar to iCal or MS Outlook's calendar. | gwt-cal | GPL v3 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 incompatibilities. | GWT Widget Library | LGPL |
| Button | Imageless Button | www.cobogw.org | Apache License 2.0 |
| RoundedPanel | Rounded corners like GMail | www.cobogw.org | Apache License 2.0 |
| Future Earth Gwt Library | A collection of widgets (Calendar 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 |
| TreeGrid | The grid that allows diplaying tree data models. | 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 |
| SimpleGrid | It's a basic FlexTable extension that supports vertical content scrolling and column resizing. | Advanced GWT Components | Apache 2.0 |
| AdvancedTabPanel | TabPanel that allows using different tabs band positions - left, right, top and bottom. | Advanced GWT Components | Apache 2.0 |
| RoundCorderBorder | It's a panel that draws a border with rounded corenrs around the content widget. Shadows supported. | Advanced GWT Components | Apache 2.0 |
| SingleBorder | It's a panel that draws a simple border around the content widget. Shadows supported. | Advanced GWT Components | Apache 2.0 |
| Dynamic Form | Populates itself at runtime with sub-widgets to match properties of business objects. | Metawidget | LGPL |
[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.
- Google eclipse plugin for gwt and app engine
- 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
- GWT ToolingGWT Tooling is another Eclipse plugin. (Deprecated - see Cypal Studio GWT Plugin)
[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.
- Pyjamas In exactly the same way that GWT is a java-to-javascript compiler and AJAX Widget set, Pyjamas is a python-to-javascript compiler and AJAX Widget set (with an identical API to that of GWT's Widget API). In 2008, Pyjamas was ported to the Desktop, bypassing all of the javascript completely.
[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
[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.
- GWT API Documentation JavaDoc extracted from gwt-user.jar
-
GWT Wiki - GWTpedia.com Wiki devoted to GWT
- 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
