GWT Training

Workshop Length

5 days

Objective

Learn to build non-trivial AJAX applications using GWT.

Description

GWT is one of the most exciting web development technologies available today. And GWT is now our most popular workshop. Our current GWT workshop covers GWT 2.4.

Smart Soft has been using and teaching GWT since before it's 1.0 release and we were the first to offer GWT training back 2006. We now have a over a dozen real-world GWT applications under our belt and this workshop is based on that experience.

In this workshop we cover all of the nuts and bolts of GWT (the widget library, history support, etc.) but we also place a strong emphasis on GWT best-practices and patterns.

Our public workshops are usually small (2 or 3 students) and tailored to meet the specific needs of each student. So if there are special topics you would like us to cover please let us know.

Prerequisites

Core Java

Pricing

For private, dedicated workshops see our price page. For public, open-enrollment workshops, see the table to the right.

Topics

  • Overview
    • What is GWT?
    • GWT compiler
    • GWT emulator (hosted mode)
    • GWT compared to other web frameworks
    • GWT compared to other AJAX frameworks
    • Pros and cons of GWT
  • Understanding Modules
    • What is a module?
    • Recommended module structure
    • Custom module structure
    • Adapting GWT into an existing web app structure
    • Inheriting modules
  • GWT widget library
    • Basic widgets
      • Label
      • Button
      • TextBox
      • Hyperlink
    • Text widgets
      • Label
      • HTML
      • TextBox
      • Hidden
      • PasswordTextBox
      • TextArea
      • RichTextArea
    • Layout
      • UIBinder versus Java
      • Quirks Mode versus Standards Mode
      • Table-based versus CSS-Based Layouts
      • Simple Layouts
        • VerticalPanel
        • HorizontalPanel
        • FlowPanel
        • SimplePanel
        • DockPanel
        • AbsolutePanel
        • ScrollPanel
      • More Layout Panels
        • TabPanel
        • StackPanel (Accordion)
        • SplitPanel
        • DeckPanel
      • LayoutPanels
        • LayoutPanel
        • StackLayoutPanel
        • SplitLayoutPanel
        • DockLayoutPanel
    • Tables and trees
      • Grid
      • FlexTable
      • Tree
    • Cell-based Components
      • Cell Concepts
      • CellList
      • CellTable
      • CellTree
      • Composite Cells
      • HasCell and ValueUpdater
    • Advanced Tables and Trees
      • Dealing with Large DataSets
        • Lazy Fetching
        • Eager Fetching
        • Predictive Fetching
        • Caching
        • Speeding up Rendering
          • Node-based DOM operations
          • Text-based DOM operations
            • Cells
            • HtmlPanel
            • UIBinder
      • FlexTable
      • Tree
    • Lists and Checkbox
      • ListBox
      • RadioButton
      • CheckBox
      • SuggestBox
    • Popups, dialogs and menus
      • PopupPanel
      • DisclosurePanel
      • DialogBox
      • Menu
      • DecoratorPanel
  • Event Handling
    • Understanding Handlers
    • Click Events
    • Mouse and Key Events
    • Value and Selection Events
    • Creating you own Events
    • How to Use the GWT Event Bus
      • Global Events
      • Widget Specific Events
  • Images
    • Image Widget
    • Prefetching Image
    • Bundling Images
  • Connecting to Data and Back-end Services
    • AJAX Overview
      • Connectivity options
      • Asynchronous callbacks
      • The RequestBuilder class
      • Performance issues
    • GWT RPC
      • Remote and Async Interfaces
      • Servlet Implementation
      • Asynchronous Callbacks
      • Exception Handling
      • GWT Serialization
    • Invoking XML Web Services
    • Invoking JSON Services
    • GWT Request Factory
  • Creating Web-friendly applications
    • Creating bookmarkable pages
    • History and the back button
    • Places and Activities
  • Performance Concerns
    • Cache versus nocache
    • Cross-Product Compilation
    • Image Bundling
    • Lazy-loading widgets
    • Pre-fetching
    • Obfuscation
  • Miscellaneous API's
    • Cookies
    • Timers
    • Random
    • Window and Location
    • The GWT class
  • Creating Custom Widgets
    • Composites
    • From Scratch using Java
    • Using JavaScript
    • Calendar widget
    • DatePicker widget
  • 3rd Party Widgets
    • MyGWT
    • Ext GWT
    • GWT Widget Library
    • GWT Drag and Drop
    • The GWT Incubator
  • Google Gears
    • Occasionally connected apps
    • Local SQL
    • Local Documents
    • Background Processing
  • JSNI
    • JavaScriptObject
    • Implement a Java native using JavaScript
    • Call from JavaScript into Java
    • Call from Java into JavaScript
    • Sharing Objects between Java and JavaScript
  • Integrating with other technologies
    • GWT with JSP
    • GWT with JSF
    • GWT with Struts
    • Evolving legacy apps to GWT
  • MVP
    • MVP Overview
    • Event Aggregator
    • Separated Presentation
    • Observer Synchronization
    • Supervising Controller
    • Passive View
    • Notification
    • Data Binding
  • MVP and GWT Architecture
    • MVP Overview
    • Event Aggregator
    • Separated Presentation
    • Observer Synchronization
    • Supervising Controller
    • Passive View
    • Notification
    • Data Binding
    • GWT Editors
  • Miscellaneous
    • Debugging GWT applications
    • Security Issues
    • Write classes that run on both server and client - GWT.isClient
    • Image Bundles
    • Internationalization
    • Using GWT's dictionary to access JavaScript values in host page
    • Unit testing GWT modules
    • GWT and CSS
    • 5 GWT Hidden Gems
    • 5 GWT Pitfalls
  • Advanced Topics
    • Deferred Binding: The Magic GWT.create()
    • Low-level event handling
    • Manipulating the DOM directly
    • Command,DeferredCommand, IncrementalCommand

Upcoming Dates

We don't cancel classes due to low enrollment.

Date Price  
05/27/2013 $4,000 Signup
06/10/2013 $4,000 Signup
06/17/2013 $4,000 Signup
06/24/2013 $4,000 Signup
07/01/2013 $4,000 Signup
07/08/2013 $4,000 Signup
07/15/2013 $4,000 Signup
07/22/2013 $4,000 Signup
07/29/2013 $4,000 Signup
08/05/2013 $4,000 Signup
08/12/2013 $4,000 Signup
08/19/2013 $4,000 Signup
08/26/2013 $4,000 Signup
09/02/2013 $4,000 Signup
09/09/2013 $4,000 Signup
09/16/2013 $4,000 Signup
09/23/2013 $4,000 Signup
09/30/2013 $4,000 Signup
10/07/2013 $4,000 Signup
10/14/2013 $4,000 Signup
10/21/2013 $4,000 Signup
10/28/2013 $4,000 Signup
11/04/2013 $4,000 Signup
11/11/2013 $4,000 Signup
11/18/2013 $4,000 Signup