Google Web Toolkit: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Pat Palmer
(consolidation of paragraphs and slight reword of intro)
m (Text replacement - "Javascript" to "JavaScript")
 
(20 intermediate revisions by 3 users not shown)
Line 1: Line 1:
'''Google Web Toolkit''' ('''GWT''') is an [[open source]] [[software framework|software development framework]] that allows [[web developer]]s to create [[Ajax programming|Ajax]] applications using the [[Java programming language]]. It is licensed under the [[Apache License]] version 2.0.<ref>{{cite web
{{subpages}}
{{TOC|right}}
'''Google Web Toolkit''' (also referred to as GWT) is an [[open source]] [[software framework|software development framework]] licensed under the [[Apache License]] version 2.0.<ref>{{cite web
  | url = http://code.google.com/webtoolkit/terms.html
  | url = http://code.google.com/webtoolkit/terms.html
  | title = Google Web Toolkit License Information
  | title = Google Web Toolkit License Information
Line 5: Line 7:
  | date = February 23, 2007
  | date = February 23, 2007
  | accessdate = 2007-09-25
  | accessdate = 2007-09-25
}}</ref>. GWT is helpful in creating [[reusability|reusable]], efficient solutions for [[Ajax programming]] issues such as asynchronous [[remote procedure call| remote procedure calls]], history management, bookmarking, and cross-browser [[porting|portability]].
}}</ref>. Google Web Toolkit allows [[web developer]]s to create [[Ajax programming|Ajax]] applications using the [[Java programming language]].  GWT enables [[reusability|reusable]], efficient solutions for [[Ajax programming]] by automating issues having to do with asynchronous [[remote procedure call| remote procedure calls]], history management, bookmarking, and cross-browser [[porting|portability]]. With GWT, programmers develop and debug [[Ajax]] applications in the [[Java programming language]]. When the application is deployed, the GWT [[compiler]] translates the Java program to browser-compliant [[JavaScript]] and [[HTML]]. Google announced GWT at the [[JavaOne conference]], 2006.<ref name="Steven_Olson_Ajax_Java">{{cite book
 
==History==
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
  | last = Olson
  | first = Steven Douglas
  | first = Steven Douglas
Line 21: Line 15:
  | isbn = 978-0596101879
  | isbn = 978-0596101879
  | pages = 183
  | pages = 183
}}</ref>
}}</ref>.
 
==Releases==
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>.  Subsequent releases:


Release 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
Line 29: Line 30:
* GWT 1.3  February 5, 2007
* GWT 1.3  February 5, 2007
* GWT 1.4  August 28, 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 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.


==Components==
==Components==
 
;GWT Java-to-Javascript Compiler
The major GWT components include:
:Translates the [[Java programming language]] to the [[JavaScript]] programming language.
 
;GWT Java-to-JavaScript Compiler
:Translates the Java programming language to the JavaScript programming language.
;GWT Hosted Web Browser
;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).
:Allows the developers to run and execute GWT applications in hosted mode (the program runs as Java in the JVM without compiling to JavaScript).
;JRE emulation library
;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).
: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
;GWT Web UI class library
:A set of custom interfaces and classes for creating [[widget|widgets]].
:A set of custom interfaces and classes for creating [[widget|widgets]].
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|plugins]] 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.  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 code]]. This mode is typically used for deployment.


==Features==
==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
* Reusable user interface (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
  | last = Perry
  | first = Bruce W
  | first = Bruce W
Line 63: Line 56:
  | isbn = 978-0596510220
  | isbn = 978-0596510220
  | pages = 1-5
  | pages = 1-5
}}</ref>
}}</ref>.  In GWT, the UI components are called ''widgets''.
* Simple [[Remote procedure call|RPC]] mechanism
* Simple [[Remote procedure call|RPC]] mechanism
* Browser history management
* Browser history management
* Support for full-featured Java debugging.<ref name="Steven_Olson_Ajax_Java"/>
* Support for full-featured [[Java programming language|Java]] debugging.<ref name="Steven_Olson_Ajax_Java"/>
* GWT handles all cross-browser issues for the developer.<ref name="Steven_Olson_Ajax_Java"/>
* GWT handles all cross-browser issues for the developer.<ref name="Steven_Olson_Ajax_Java"/>
* [[JUnit]] integration
* [[JUnit]] integration
Line 73: Line 66:
* Support for using Google [[Application programming interface|APIs]] in GWT applications (initially, support for [[Google Gears]])
* Support for using Google [[Application programming interface|APIs]] in GWT applications (initially, support for [[Google Gears]])
* Open-source
* 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.
* 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"/>
* 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"/>
* 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 ===
=== Available widgets ===
As of version 1.4 (August 2007), GWT offers several [[widget|widgets]]:<ref>{{cite web
As of version 1.4 (August 2007), GWT offers several widgets:<ref>{{cite web
  | url = http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.UserInterface.WidgetGallery.html
  | url = http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.UserInterface.WidgetGallery.html
  | title = Widgets Gallery
  | title = Widgets Gallery
Line 142: Line 135:
  | isbn = 978-1933988290
  | isbn = 978-1933988290
}}
}}
== External links ==
* [http://code.google.com/webtoolkit/ GWT homepage]
* [http://googlewebtoolkit.blogspot.com/ Official GWT blog]
* [http://groups.google.com/group/Google-Web-Toolkit Official GWT Google Group]
[[Category:Computers Workgroup]]

Latest revision as of 09:49, 20 August 2023

This article is developing and not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.

Google Web Toolkit (also referred to as GWT) is an open source software development framework licensed under the Apache License version 2.0.[1]. Google Web Toolkit allows web developers to create Ajax applications using the Java programming language. GWT enables reusable, efficient solutions for Ajax programming by automating issues having to do with asynchronous remote procedure calls, history management, bookmarking, and cross-browser portability. With GWT, programmers develop and debug Ajax applications in the Java programming language. When the application is deployed, the GWT compiler translates the Java program to browser-compliant JavaScript and HTML. Google announced GWT at the JavaOne conference, 2006.[2].

Releases

GWT version 1.0 RC 1 (build 1.0.20) was released on May 16, 2006.[3]. Subsequent releases:

  • 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

Components

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 program 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.

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. GWT applications can be run in two modes:

Features

  • Reusable user interface (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]. In GWT, the UI components are called widgets.
  • Simple RPC mechanism
  • Browser history management
  • Support for full-featured Java debugging.[2]
  • GWT handles all cross-browser issues for the developer.[2]
  • 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.

References

  1. Google Web Toolkit License Information (February 23, 2007). Retrieved on 2007-09-25.
  2. 2.0 2.1 2.2 Olson, Steven Douglas (2007). Ajax on Java. O'Reilly, 183. ISBN 978-0596101879. 
  3. Google Web Toolkit Release Archive. Retrieved on 2007-09-25.
  4. 4.0 4.1 4.2 4.3 Perry, Bruce W (2007). Google Web Toolkit for Ajax. O'Reilly, 1-5. ISBN 978-0596510220. 
  5. Widgets Gallery. Retrieved on 2007-09-25.

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; Adam Tacy (2007). GWT in Action: Easy Ajax with the Google Web Toolkit. Manning. ISBN 978-1933988238. 
  • Cooper, Robert; Charlie Collins (2008). GWT in Practice. Manning. ISBN 978-1933988290.