Google Web Toolkit: Difference between revisions
(add footer) |
(rewrite) |
||
| Line 1: | Line 1: | ||
{{Infobox Software |
|||
{{onesource|article|date=September 2007}} |
|||
| name = Google Web Toolkit |
|||
The '''Google Web Toolkit''' is an open source toolkit allowing developers to create [[Ajax (programming)|Ajax]] applications in the [[Java (programming language)|Java]] [[programming language]] <ref> |
|||
| logo = |
|||
{{cite web |url=http://googlewebtoolkit.blogspot.com/2006_12_01_archive.html |title= GWT 1.3 Release Candidate is 100% Open Source |accessdate=2007-02-08 |author=Johnson, Bruce |date=2006-12-12}}</ref>. GWT supports rapid [[client-server|client/server]] [[software engineering|development]] and [[debugging]] in any Java [[integrated development environment|IDE]]. In a subsequent deployment step, the GWT compiler translates a working Java application into equivalent [[JavaScript]] that programmatically manipulates a [[web browser|web browser's]] [[HTML]] [[document object model|DOM]] using [[DHTML]] techniques. GWT emphasizes reusable, efficient solutions to recurring Ajax challenges, namely [[remote procedure call|asynchronous remote procedure calls]], history management, [[Bookmark (computers)|bookmarking]], and cross-browser [[porting|portability]]. |
|||
| screenshot = |
|||
== Features == |
|||
| caption = |
|||
* Dynamic, reusable UI components |
|||
| author = [[Google]] |
|||
* Simple [[Remote_procedure_call|RPC]] |
|||
| developer = |
|||
* Browser history management |
|||
| released = May 16, 2006 |
|||
* Debugging using java debuggers |
|||
| latest release version = 1.4.60 |
|||
* Browser compatible |
|||
| latest release date = August 28, 2007 |
|||
* [[JUnit]] integration |
|||
| latest preview version = |
|||
* Internationalization |
|||
| latest preview date = |
|||
* Interoperability and fine-grained control |
|||
| programming language = [[Java (programming language)|Java]] |
|||
* Google API Library: [[Google Gears]] support |
|||
| operating system = [[Microsoft Windows|Windows]], [[Mac OS X]], [[Linux]] |
|||
* Completely [[Open Source]] |
|||
| platform = |
|||
| language = |
|||
| status = |
|||
| genre = [[software framework]] |
|||
| license = [[Apache License]] 2.0 |
|||
| website = [http://code.google.com/webtoolkit/ code.google.com/webtoolkit] |
|||
}} |
|||
'''Google Web Toolkit''' ('''GWT''') is an [[open source]] Java [[software framework|software development framework]] that allows [[web developer]]s to create [[Ajax (programming)|Ajax]] applications in the [[Java (programming language)|Java]]. It is licensed under the [[Apache License]] version 2.0.<ref>{{cite web |
|||
| url = http://code.google.com/webtoolkit/terms.html |
|||
| title = Google Web Toolkit License Information |
|||
| pubilsher = [[Google]] |
|||
| date = February 23, 2007 |
|||
| accessdate = 2007-09-25 |
|||
}}</ref> |
|||
GWT emphasizes [[reusability|reusable]], efficient solutions to recurring Ajax challenges, namely [[remote procedure call|asynchronous remote procedure calls]], history management, [[Bookmark (computers)|bookmarking]], and cross-browser [[porting|portability]]. |
|||
== Available widgets == |
|||
As of [[December]] [[2006]], the '''Google Web Toolkit''' contains [[Widget (computing)|widgets]] for: |
|||
* Panels (AbsolutePanel, CellPanel, DeckPanel, DockPanel, and many more) |
|||
* Buttons |
|||
* Checkboxes |
|||
* Radio Buttons |
|||
* Tables (FlexTable, Grid, etc.) |
|||
* Dialog Boxes |
|||
* HTML primitives (Images, Hyperlinks, and raw HTML) |
|||
* Menus and Menubars |
|||
* Scrollpanes |
|||
* Tabs |
|||
* Trees |
|||
==History== |
|||
Many common widgets not found in the '''Google Web Toolkit''' have been implemented in third-party libraries, such as the [http://gwtiger.org/ GWTiger Library and Application Framework] and [http://gwt.components.googlepages.com/ GWT Component Library]. |
|||
GWT version 1.0 RC 1 (build 1.0.20) was released on May 16, 2006.<ref>{{cite web |
|||
| url = http://code.google.com/webtoolkit/versions.html |
|||
| title = Google Web Toolkit Release Archive |
|||
| pubilsher = [[Google]] |
|||
| accessdate = 2007-09-25 |
|||
}}</ref> Google announced GWT at the [[JavaOne]] conference, 2006.<ref name="Steven_Olson_Ajax_Java">{{cite book |
|||
| last = Olson |
|||
| first = Steven Douglas |
|||
| title = Ajax on Java |
|||
| publisher = O'Reilly |
|||
| year = 2007 |
|||
| isbn = 978-0596101879 |
|||
| pages = 183 |
|||
}}</ref> |
|||
Release history: |
|||
The [http://code.google.com/p/rocket-gwt/ rocket-gwt ] contains many extras which help developers author sophisticated GWT powered applications including: |
|||
* templated based code generation using deferred binding |
|||
* bean factories with aop support (on the client) |
|||
* cometting of objects |
|||
* json serialization |
|||
* browser independent css manipulation |
|||
* programmatic support for determining and changing (mouse) selections. |
|||
* many additional widgets. |
|||
== History== |
|||
* GWT 1.0 [[May 17]], [[2006]] |
* GWT 1.0 [[May 17]], [[2006]] |
||
* GWT 1.1 [[August 11]], [[2006]] |
* GWT 1.1 [[August 11]], [[2006]] |
||
* GWT 1.2 [[November 16]], [[2006]] |
* GWT 1.2 [[November 16]], [[2006]] |
||
* GWT 1.3 [[February |
* GWT 1.3 [[February 5]], [[2007]] |
||
* GWT 1. |
* GWT 1.4 [[August 28]], [[2007]] |
||
* GWT 1.4RC 2 [[August 20]], [[2007]] |
|||
* GWT 1.4 [http://code.google.com/p/google-web-toolkit/wiki/DevPlan_1_4 GWT Version 1.4 Development Plan] |
|||
== |
==Development== |
||
Using GWT, the developers can rapidly develop and debug AJAX applications in the Java language using the Java development tools of their choice. When the application is deployed, the GWT compiler translates the Java application to browser-compliant [[JavaScript]] and [[HTML]]. |
|||
* [[Google code]] |
|||
* [[Google gears]] |
|||
* [[Ajax (programming)]] |
|||
GWT applications can be run in two modes: |
|||
* ''Hosted mode'': The application is run as Java bytecode within the [[Java Virtual Machine]] (JVM). This mode is typically used for development. |
|||
* ''Web mode'': The application is run as pure JavaScript and HTML, compiled from the Java source. This mode is typically used for deployment. |
|||
A command-line utility shipped with GWT, applicationCreator, automatically generates all the files needed to start a GWT project. It can also generate [[Eclipse (software)|Eclipse]] project files. Several open-source [[plugin]]s are available for making GWT development easier with [[integrated development environment|IDEs]]. E.g., [https://gwt4nb.dev.java.net/ GWT4NB] for [[NetBeans]], [http://code.google.com/p/cypal-studio/ Cypal Studio for GWT] for [[Eclipse (software)|Eclipse]], [http://www.gdevelop.com/?q=node/2 gwtDeveloper] for [[JDeveloper]] etc. |
|||
{{Application frameworks}} |
|||
==Components== |
|||
The major GWT components include: |
|||
== Reference == |
|||
;GWT Java-to-JavaScript Compiler |
|||
:Translates the Java programming language to the JavaScript programming language. |
|||
;GWT Hosted Web Browser |
|||
:Allows the developers to run and execute GWT applications in hosted mode (the app runs as Java in the JVM without compiling to JavaScript). |
|||
;JRE emulation library |
|||
:JavaScript implementations of the commonly used classes in the Java standard class library (such as most of the java.lang package classes and a subset of the java.util package classes). |
|||
;GWT Web UI class library |
|||
:A set of custom interfaces and classes for creating [[GUI widget|widgets]]. |
|||
==Features== |
|||
* Dynamic and reusable [[GUI widget|UI components]]: programmers can use pre-designed classes to implement otherwise time-consuming dynamic behaviors, such as drag-and-drop or sophisticated visual tree structures.<ref name="Bruce_Perry_GWT_Ajax">{{cite book |
|||
| last = Perry |
|||
| first = Bruce W |
|||
| title = Google Web Toolkit for Ajax |
|||
| series = O'Reilly Short Cuts |
|||
| publisher = O'Reilly |
|||
| year = 2007 |
|||
| isbn = 978-0596510220 |
|||
| pages = 1-5 |
|||
}}</ref> |
|||
* Simple [[Remote procedure call|RPC]] mechanism |
|||
* Browser history management |
|||
* Support for full-featured Java debugging.<ref name="Steven_Olson_Ajax_Java"/> |
|||
* GWT handles all cross-browser issues for the developer.<ref name="Steven_Olson_Ajax_Java"/> |
|||
* [[JUnit]] integration |
|||
* Easy [[internationalization]] |
|||
* The developers can mix handwritten JavaScript in the Java source code using the JavaScript Native Interface (JSNI). |
|||
* Support for using Google [[Application programming interface|APIs]] in GWT applications (initially, support for [[Google Gears]]) |
|||
* Open-source |
|||
* The developers can design and develop their application in a pure object-oriented fashion, since they're using Java (instead of JavaScript).<ref name="Bruce_Perry_GWT_Ajax"/> Common JavaScript errors (such as typos and [[Type system|type mismatches]] are caught at compile time. |
|||
* JavaScript that the GWT compiler generates is quite obfuscated or very difficult to read, which provide the application with some security and protection of proprietary material.<ref name="Bruce_Perry_GWT_Ajax"/> |
|||
* A number of libraries are available for GWT, by Google and third parties. These extend GWTs features.<ref name="Bruce_Perry_GWT_Ajax"/> |
|||
=== Available widgets === |
|||
As of version 1.4 (August 2007), GWT offers several [[widget (computing)|widgets]]:<ref>{{cite web |
|||
| url = http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.UserInterface.WidgetGallery.html |
|||
| title = Widgets Gallery |
|||
| pubilsher = [[Google]] |
|||
| accessdate = 2007-09-25 |
|||
}}</ref> |
|||
* HTML primitives (Button, Radio Button, Checkbox, TextBox, PasswordTextBox, TextArea, Hyperlink, ListBox, Table etc.) |
|||
* PushButton, ToggleButton |
|||
* MenuBar |
|||
* Tree |
|||
* TabBar |
|||
* DialogBox |
|||
* Panels (PopupPanel, StackPanel, HorizontalPanel, VerticalPanel, FlowPanel, VerticalSplitPanel, HorizontalSplitPanel, DockPanel, TabPanel, DisclosurePanel) |
|||
* RichTextArea |
|||
* SuggestBox (auto-complete) |
|||
Many common widgets not found in the GWT have been implemented in third-party libraries, such as [http://gwtiger.org/ GWTiger], [http://gwt-widget.sourceforge.net/ GWT Widget Library], [http://gwt.components.googlepages.com/ GWT Component Library], [http://code.google.com/p/rocket-gwt/ Rocket GWT] etc. |
|||
== See Also == |
|||
* [[Google code]] |
|||
==References== |
|||
{{reflist}} |
{{reflist}} |
||
==Bibliography== |
|||
* {{cite book |
|||
| last = Dewsbury |
|||
| first = Ryan |
|||
| title = Google Web Toolkit Applications |
|||
| publisher = Prentice Hall |
|||
| year = 2007 |
|||
| isbn = 978-0321501967 |
|||
}} |
|||
* {{cite book |
|||
| last = Chaganti |
|||
| first = Prabhakar |
|||
| title = Google Web Toolkit: GWT Java Ajax Programming |
|||
| publisher = Packt Publishing |
|||
| year = 2007 |
|||
| isbn = 978-1847191007 |
|||
}} |
|||
* {{cite book |
|||
| last = Geary |
|||
| first = David |
|||
| title = Google Web Toolkit Solutions: More Cool & Useful Stuff |
|||
| publisher = Prentice Hall |
|||
| year = 2007 |
|||
| isbn = 978-0132344814 |
|||
}} |
|||
* {{cite book |
|||
| last = Hanson |
|||
| first = Robert |
|||
| coauthors = Adam Tacy |
|||
| title = GWT in Action: Easy Ajax with the Google Web Toolkit |
|||
| publisher = Manning |
|||
| year = 2007 |
|||
| isbn = 978-1933988238 |
|||
}} |
|||
* {{cite book |
|||
| last = Cooper |
|||
| first = Robert |
|||
| coauthors = Charlie Collins |
|||
| title = GWT in Practice |
|||
| publisher = Manning |
|||
| year = 2008 |
|||
| isbn = 978-1933988290 |
|||
}} |
|||
== External links == |
== External links == |
||
| Line 72: | Line 181: | ||
[[uk:Google Web Toolkit]] |
[[uk:Google Web Toolkit]] |
||
{{Application frameworks}} |
|||
{{Google_Inc.}} |
|||
{{Google Inc.}} |
|||
Revision as of 10:08, 25 September 2007
| Original author(s) | |
|---|---|
| Initial release | May 16, 2006 |
| Stable release | 1.4.60
/ August 28, 2007 |
| Repository | |
| Written in | Java |
| Operating system | Windows, Mac OS X, Linux |
| Type | software framework |
| License | Apache License 2.0 |
| Website | code.google.com/webtoolkit |
Google Web Toolkit (GWT) is an open source Java software development framework that allows web developers to create Ajax applications in the Java. It is licensed under the Apache License version 2.0.[1]
GWT emphasizes reusable, efficient solutions to recurring Ajax challenges, namely asynchronous remote procedure calls, history management, bookmarking, and cross-browser portability.
History
GWT version 1.0 RC 1 (build 1.0.20) was released on May 16, 2006.[2] Google announced GWT at the JavaOne conference, 2006.[3]
Release history:
- GWT 1.0 May 17, 2006
- GWT 1.1 August 11, 2006
- GWT 1.2 November 16, 2006
- GWT 1.3 February 5, 2007
- GWT 1.4 August 28, 2007
Development
Using GWT, the developers can rapidly develop and debug AJAX applications in the Java language using the Java development tools of their choice. When the application is deployed, the GWT compiler translates the Java application to browser-compliant JavaScript and HTML.
GWT applications can be run in two modes:
- Hosted mode: The application is run as Java bytecode within the Java Virtual Machine (JVM). This mode is typically used for development.
- Web mode: The application is run as pure JavaScript and HTML, compiled from the Java source. This mode is typically used for deployment.
A command-line utility shipped with GWT, applicationCreator, automatically generates all the files needed to start a GWT project. It can also generate Eclipse project files. Several open-source plugins are available for making GWT development easier with IDEs. E.g., GWT4NB for NetBeans, Cypal Studio for GWT for Eclipse, gwtDeveloper for JDeveloper etc.
Components
The major GWT components include:
- GWT Java-to-JavaScript Compiler
- Translates the Java programming language to the JavaScript programming language.
- GWT Hosted Web Browser
- Allows the developers to run and execute GWT applications in hosted mode (the app runs as Java in the JVM without compiling to JavaScript).
- JRE emulation library
- JavaScript implementations of the commonly used classes in the Java standard class library (such as most of the java.lang package classes and a subset of the java.util package classes).
- GWT Web UI class library
- A set of custom interfaces and classes for creating widgets.
Features
- Dynamic and reusable UI components: programmers can use pre-designed classes to implement otherwise time-consuming dynamic behaviors, such as drag-and-drop or sophisticated visual tree structures.[4]
- Simple RPC mechanism
- Browser history management
- Support for full-featured Java debugging.[3]
- GWT handles all cross-browser issues for the developer.[3]
- JUnit integration
- Easy internationalization
- The developers can mix handwritten JavaScript in the Java source code using the JavaScript Native Interface (JSNI).
- Support for using Google APIs in GWT applications (initially, support for Google Gears)
- Open-source
- The developers can design and develop their application in a pure object-oriented fashion, since they're using Java (instead of JavaScript).[4] Common JavaScript errors (such as typos and type mismatches are caught at compile time.
- JavaScript that the GWT compiler generates is quite obfuscated or very difficult to read, which provide the application with some security and protection of proprietary material.[4]
- A number of libraries are available for GWT, by Google and third parties. These extend GWTs features.[4]
Available widgets
As of version 1.4 (August 2007), GWT offers several widgets:[5]
- HTML primitives (Button, Radio Button, Checkbox, TextBox, PasswordTextBox, TextArea, Hyperlink, ListBox, Table etc.)
- PushButton, ToggleButton
- MenuBar
- Tree
- TabBar
- DialogBox
- Panels (PopupPanel, StackPanel, HorizontalPanel, VerticalPanel, FlowPanel, VerticalSplitPanel, HorizontalSplitPanel, DockPanel, TabPanel, DisclosurePanel)
- RichTextArea
- SuggestBox (auto-complete)
Many common widgets not found in the GWT have been implemented in third-party libraries, such as GWTiger, GWT Widget Library, GWT Component Library, Rocket GWT etc.
See Also
References
- ^ "Google Web Toolkit License Information". February 23, 2007. Retrieved 2007-09-25.
{{cite web}}: Unknown parameter|pubilsher=ignored (|publisher=suggested) (help) - ^ "Google Web Toolkit Release Archive". Retrieved 2007-09-25.
{{cite web}}: Unknown parameter|pubilsher=ignored (|publisher=suggested) (help) - ^ a b c Olson, Steven Douglas (2007). Ajax on Java. O'Reilly. p. 183. ISBN 978-0596101879.
- ^ a b c d Perry, Bruce W (2007). Google Web Toolkit for Ajax. O'Reilly Short Cuts. O'Reilly. pp. 1–5. ISBN 978-0596510220.
- ^ "Widgets Gallery". Retrieved 2007-09-25.
{{cite web}}: Unknown parameter|pubilsher=ignored (|publisher=suggested) (help)
Bibliography
- Dewsbury, Ryan (2007). Google Web Toolkit Applications. Prentice Hall. ISBN 978-0321501967.
- Chaganti, Prabhakar (2007). Google Web Toolkit: GWT Java Ajax Programming. Packt Publishing. ISBN 978-1847191007.
- Geary, David (2007). Google Web Toolkit Solutions: More Cool & Useful Stuff. Prentice Hall. ISBN 978-0132344814.
- Hanson, Robert (2007). GWT in Action: Easy Ajax with the Google Web Toolkit. Manning. ISBN 978-1933988238.
{{cite book}}: Unknown parameter|coauthors=ignored (|author=suggested) (help) - Cooper, Robert (2008). GWT in Practice. Manning. ISBN 978-1933988290.
{{cite book}}: Unknown parameter|coauthors=ignored (|author=suggested) (help)