Technology
 

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

Additional examples are in the GWT App Gallery:

These live sample applications have begun to scratch the surface of what can be done with the GWT framework.

[edit] 3rd Party Libraries

[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 Uploader A library to easily upload files to the server showing statistics and progress bar http://code.google.com/p/gwtupload/ Apache License 2.0
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.


[edit] Tools


[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

[edit] Links

Rate this article: