Developing Web Applications using GWT (Google Web Toolkit)

GWT is one of the most exciting web development technologies available today.

This five day course provides developers to all the primary features of Google Web Toolkit (GWT) they'll need to know in order to build a fully functional, well architected and Ajax-enabled Web application. It gives details on the most important topics, surveys more advanced or lesser-used topics, stresses best practices, and gives plenty of working examples. GWT is a free and open-source toolkit for building Ajax applications using Java.

GWT is a very different approach than the other toolkits such as jQuery, Dojo and other traditional Ajax development. GWT 2.0 introduces many changes and new features, so even programmers who used previous GWT can benefit from this course. Students will also gain hands-on, practical experience connecting their GWT Web applications to remote, dynamic data using REST style communication. You will connect with remote data using web services allowing communication with a Java based server environment.

In addition, skills will be learned how to manipulate and format the returned data. You will also become familiar with service-oriented architectures and supporting technologies. At the end of this course you will be able to provide enterprise (JAX-WS) and REST (JAXRS) style Web services using Java™, process and transform JSON and XML in GWT. You will also learn some of the advanced features of GWT to create sophisticated rich internet applications.


The GWT Concept

  • Dynamic HTML
  • The GWT Solution
  • So What is GWT?
  • The GWT Compiler
  • GWT Design Axioms
  • Getting Started with GWT
  • Creating a GWT Project
  • A GWT Project Structure
  • Executing a GWT Project
  • Using GWT with Legacy Web Apps
  • GWT Module Configuration
  • GWT Module Entry Point
  • Development Mode versus Web Mode
  • Our Class Project: A Film Rental Application

GWT User Interfaces

  • GWT User Interfaces
  • Creating and Configuring Widgets
  • Widget Hierarchy
  • Widget Behavior
  • Using the RootPanel
  • Basic Styling
  • Some Basic Widgets

Organizing User Interfaces in GWT

  • Laying Out Widgets into Panels
  • Various GWT Layouts
  • FlowPanel
  • HorizontalPanel and Vertical Panel
  • The RootPanel
  • DockPanel, DockLayoutPanel, SplitLayoutPanel, and LayoutPanel
  • Using Grid
  • Using FlexTable
  • Using ScrollPanel
  • Using PopupPanel and DecoratedPopupPanel
  • Dialog Boxes
  • The DisclosurePanel

Event Handling in GWT

  • Event Handling in User Interfaces
  • The GWT Event Model
  • Using Event Handlers
  • Types of Events
  • FormPanel Events

Images and Resources

  • Using Images in GWT
  • The GWT Image Widget
  • Prefetching Images
  • Using ImageBundle and ClientBundle
  • Creating a Client Bundle for Images and Text
  • Using a Client Bundle
  • More on Client Bundles

GWT Utility Classes

  • GWT and Cookies
  • The GWT Random Class
  • Animation in GWT
  • Uploading Files in GWT
  • The GWT Class
  • The GWT Window Class
  • The Window.Location Class
  • The GWT Timer Class

History and Bookmarks in GWT

  • History and Bookmarks in GWT
  • Using Hyperlink Widgets
  • Managing History
  • The History Token
  • Adding New History Items
  • The History Handler
  • Handling Bookmarks

RPC Protocol in GWT

  • Why a New Protocol?
  • RPC Protocol in GWT
  • GWT RPC Basics
  • Steps to RPC: Code Components
  • RPC Components
  • Setting the Servlet Path in a Module
  • Creating an Invocation Target
  • RPC Events
  • No Synchronous RPC in GWT
  • Data Serialization

Using Modules in GWT

  • GWT Modules
  • Using External Modules
  • Modularizing An Application
  • Deferred Binding
  • Multiple-Module Applications
  • Code Splitting

More on GWT User Interfaces

  • Using ToggleButton and PushButton
  • Using DecoratorPanel
  • Using AbsolutePanel
  • Using HTMLPanel
  • Using FocusPanel
  • Using HorizontalSplitPanel and VerticalSplitPanel
  • Using StackPanel
  • Using TabPanel
  • The DeckPanel
  • Using TabPanel
  • Using Menus via a MenuBar
  • Using a Tree Widget
  • Using SuggestBox
  • GWT RichTextArea Editing
  • FormPanel
  • Using DeferredCommand

GWT UiBinder and SafeHtml

  • What is UiBinder?
  • UiBinder Benefits
  • UiBinder Templates
  • Creating a UiBinder in Eclipse
  • What Is SafeHtml?

Styling with CSS in GWT

  • Syling with CSS in GWT
  • GWT Visual Themes
  • Styling Widgets in GWT
  • Associating CSS Files with a Module
  • Dependent Style in Widgets
  • More ClientBundle Elements: CSS Resources, Data Resources, and External Resources

Creating Composite GWT Widgets

  • Custom GWT Widgets
  • Composite GWT Widgets
  • Developing Composite Widgets
  • Using Composite Widgets

Testing and Debugging GWT Modules in GWT

  • Testing and Debugging GWT Modules
  • Unit Testing Concepts
  • The JUnit Test Framework
  • Writing a JUnit Test Case
  • GWT Unit Testing with GWTTestCase
  • Running junitCreator
  • Testing Asynchronous Code
  • GWT System Testing
  • GWT User Interface Testing

More Server Integration Options in GWT

  • More Server Integration Options in GWT
  • Using HTTP Requests
  • Manipulating an XML DOM
  • Integrating Using JSON

GWT JavaScript Native Interface

  • GWT JavaScript Native Interface
  • Defining JSNI Methods
  • Sharing Data between JavaScript and Java
  • Talking to the Browser via JSNI
  • Using External JavaScript
  • Using a JavaScriptObject in GWT
  • Java Callbacks from External JavaScript
  • Using External Libraries

Advanced GWT Connectivity

  • Stateful and Stateless Servers
  • Using Stateful Servers
  • Handling Exceptions

Client-Side RPC Architecture in GWT

  • Client-Side RPC Architecture
  • Client-Side Pull versus Push
  • Polling Protocols

GWT Best Practices

  • Security Issues
  • Performance Concerns
  • Internationalization in GWT
  • GWT Pitfalls and Issues
  • Testing Practices for GWT
  • Bandwidth-Sensitive Applications


This course is designed for java developers who are familiar with Java programing and want to get into rich web app development.


4.5 days


Instructor Lead
Learn to build non-trivial AJAX applications using GWT.


Experience in the following areas is required:-Fair knowledge of Java programming language -Basic understanding HTML, CSS, Javascript and their relationships Experience in the following areas would be beneficial.-Some foundation in widget-based Form development using events -Basic knowledge of HTTP protocol.