You are previewing Beginning Google Web Toolkit: From Novice to Professional.
O'Reilly logo
Beginning Google Web Toolkit: From Novice to Professional

Book Description

The open source, lightweight Google Web Toolkit (GWT) is a framework that allows Java developers to build Rich Internet Applications (RIA), more recently called Ajax applications, in Java. Typically, writing these applications requires a lot of JavaScript development. However, Java and JavaScript are very distinctively different languages (although the name suggests otherwise), therefore requiring a different development process.

In Beginning Google Web Toolkit: From Novice to Professional, you'll learn to build rich, user-friendly web applications using a popular Java-based Ajax web framework, the Google Web Toolkit. The authors will guide you through the complete development of a GWT front end application with a no-nonsense, down-to-earth approach.

You'll start with the first steps of working with GWT and learn to understand the concepts and consequences of building this kind of application. During the course of the book, all the key aspects of GWT are tackled pragmatically, as you're using them to build a real-world sample application. Unlike many other books, the inner workings of GWT and other unnecessary details are shelved, so you can focus on the stuff that really matters when developing GWT applications.

Table of Contents

  1. Copyright
  2. About the Authors
  3. About the Technical Reviewer
  4. Acknowledgments
  5. Introduction
    1. Who This Book Is For
    2. How This Book Is Structured
    3. Prerequisites
    4. Downloading the Code
  6. 1. Introducing Rich Internet Applications (RIAs)
    1. 1.1. A Short History
      1. 1.1.1. Mainframe Applications
      2. 1.1.2. Client/Server Applications
      3. 1.1.3. Web Applications
      4. 1.1.4. Rich Web Applications
    2. 1.2. Introducing Ajax
      1. 1.2.1. Asynchronous
      2. 1.2.2. JavaScript
      3. 1.2.3. XML
      4. 1.2.4. From AJAX to Ajax
    3. 1.3. Advantages and Disadvantages of RIAs
      1. 1.3.1. RIA Benefits
      2. 1.3.2. RIA Shortcomings
      3. 1.3.3. When Should You Use Ajax?
    4. 1.4. Different Approaches to Building RIAs
      1. 1.4.1. Handwritten JavaScript
      2. 1.4.2. Flex
      3. 1.4.3. Java Applets and JavaFX
      4. 1.4.4. Silverlight
      5. 1.4.5. OpenLaszlo
      6. 1.4.6. Echo2
      7. 1.4.7. GWT
    5. 1.5. Summary
  7. 2. Introducing Google Web Toolkit (GWT)
    1. 2.1. Why GWT?
      1. 2.1.1. From JavaScript to Java
      2. 2.1.2. Considerations for Using GWT
    2. 2.2. The Basics
      1. 2.2.1. Java to JavaScript Compiler
      2. 2.2.2. JRE Emulation Library
      3. 2.2.3. UI Library
    3. 2.3. GWT Application Layout
      1. 2.3.1. Public Resources
    4. 2.4. Introducing the Sample Application
    5. 2.5. Handy Development Tools
      1. 2.5.1. Web Developer Add-on
      2. 2.5.2. Firebug
      3. 2.5.3. LiveHTTPHeaders
      4. 2.5.4. Cacheability Engine
    6. 2.6. Summary
  8. 3. Getting Started
    1. 3.1. Installing GWT
    2. 3.2. Project Structure
    3. 3.3. Utility Scripts
      1. 3.3.1. Application Creator Script
      2. 3.3.2. Project Creator Script
    4. 3.4. Writing Code
      1. 3.4.1. Cleaning Up Generated Code
      2. 3.4.2. Start Coding
    5. 3.5. Running Code
    6. 3.6. Styling Code with CSS
    7. 3.7. Debugging
    8. 3.8. Summary
  9. 4. GWT UI Components
    1. 4.1. GWT Component Model
    2. 4.2. The RootPanel
    3. 4.3. Basic Widgets
      1. 4.3.1. The Label Widget
      2. 4.3.2. The HTML Widget
      3. 4.3.3. The Button Widget
      4. 4.3.4. The ToggleButton Widget
      5. 4.3.5. The Hyperlink Widget
    4. 4.4. Form Widgets
    5. 4.5. Panels
      1. 4.5.1. Creating the Sample Application
      2. 4.5.2. Designing the Main Look and Feel of GWTasks
      3. 4.5.3. Showing the Categories and Task Lists
      4. 4.5.4. Enhancing the User Experience with HorizontalSplitPanel
    6. 4.6. Summary
  10. 5. Building an Advanced UI
    1. 5.1. Using Tables
      1. 5.1.1. Using Grid
      2. 5.1.2. Using FlexTable
    2. 5.2. Climbing Trees
    3. 5.3. Using PopupPanel and DialogBox
      1. 5.3.1. PopupPanel
      2. 5.3.2. Using DialogBox
    4. 5.4. Componentizing the Code Base
      1. 5.4.1. Extending GWT Panels
      2. 5.4.2. Using Composites
      3. 5.4.3. Creating the TitledPanel Component
      4. 5.4.4. LoginPane and MainPane—The Missing Components
    5. 5.5. GWT Application Architecture
      1. 5.5.1. Layers and Packages
      2. 5.5.2. Application Events
      3. 5.5.3. Managing the Data
      4. 5.5.4. Some Last Words on Styles
    6. 5.6. Summary
  11. 6. Server Integration
    1. 6.1. GWT RPC
      1. 6.1.1. Defining the Interface
      2. 6.1.2. Implementing the Server Side
      3. 6.1.3. Implementing the Client Side
    2. 6.2. Deffered Binding
    3. 6.3. Handling Return Values
    4. 6.4. Handling Exceptions
    5. 6.5. Alternatives to GWT RPC
      1. 6.5.1. Basic Ajax
      2. 6.5.2. JSON
    6. 6.6. JSON and GWT
    7. 6.7. Summary
  12. 7. Testing GWT Applications
    1. 7.1. What Is Testing?
    2. 7.2. Unit Testing
      1. 7.2.1. Basic Unit Testing
      2. 7.2.2. GWT JUnit Integration
      3. 7.2.3. Comparing Basic and GWT Unit Testing
    3. 7.3. Functional Testing
      1. 7.3.1. Introducing Selenium
    4. 7.4. Benchmarking
      1. 7.4.1. What Is Benchmarking?
      2. 7.4.2. Writing a Benchmark
    5. 7.5. Summary
  13. 8. Advanced Topics
    1. 8.1. Internationalization (i18n)
      1. 8.1.1. A Few Words on Java Resource Bundles
      2. 8.1.2. The Constants Interface
      3. 8.1.3. The ConstantsWithLookups Interface
      4. 8.1.4. The Messages Interface
      5. 8.1.5. Formats
    2. 8.2. Image Bundles
      1. 8.2.1. Using Image Bundles Within GWTasks
      2. 8.2.2. Tree Image Bundles
    3. 8.3. Browser History and Back Button Support
      1. 8.3.1. GWT History View
      2. 8.3.2. The History Class
      3. 8.3.3. Revisiting Hyperlinks
      4. 8.3.4. Bookmark Support
      5. 8.3.5. Integrating GWTasks with History Navigation
    4. 8.4. JavaScript Native Interface (JSNI)
      1. 8.4.1. Writing Native JavaScript Methods
      2. 8.4.2. Calling GWT Methods from JavaScript
      3. 8.4.3. Exception Handling
    5. 8.5. Uploading Files
      1. 8.5.1. Monitoring Progress on the Server
      2. 8.5.2. Monitoring Progress on the Client
    6. 8.6. Summary
  14. A. IDE Support
    1. A.1. Eclipse
    2. A.2. IntelliJ IDEA
  15. B. Resources