Part I. Developer's Guide

Table of Contents

1. Introduction
1.1. Overview
1.1.1. Goals and Philosophy
1.1.2. Background
1.1.3. Changes in IT Mill Toolkit Release 5
1.2. Example Application Walkthrough
1.2.1. Hello World!
1.2.2. Calculator
1.3. What's Inside the IT Mill Toolkit Package?
1.3.1. Installing
1.3.2. Package Contents
1.3.3. Starting the Content Browser
1.3.4. Running the Demo Applications
1.4. Getting the Development Environment Up and Running
1.4.1. Installing Java SDK
1.4.2. Installing Eclipse IDE
1.4.3. Installing Apache Tomcat
1.4.4. Firefox and Firebug
1.5. QuickStart with Eclipse
1.5.1. Importing IT Mill Toolkit as a Project
1.5.2. How to Run the Demo Applications in Eclipse?
1.5.3. How to Debug the Demo Applications in Eclipse?
1.5.4. Using QuickStart as a Project Skeleton
1.6. Your First Project with IT Mill Toolkit
1.6.1. Creating the Project
1.6.2. Including IT Mill Toolkit Libraries
1.6.3. Writing the Code
1.6.4. Defining Deployment Descriptor
1.6.5. Ready to Go!
1.6.6. Starting the Web Server
1.6.7. Running and Debugging
2. Architecture
2.1. Overview
2.2. Technological Background
2.2.1. AJAX
2.2.2. Google Web Toolkit
2.2.3. JSON
2.3. Client-Side Engine
2.4. Events and Listeners
3. Writing a Web Application
3.1. Overview
3.2. Managing the Main Window
3.3. Child Windows
3.3.1. Opening and Closing a Child Window
3.3.2. Window Positioning
3.3.3. Modal Windows
3.4. Application-Level Windows
3.4.1. Creating New Application-Level Windows
3.4.2. Creating Windows Dynamically
3.4.3. Closing Windows
3.4.4. Caveats in Using Multiple Windows
3.5. Referencing Resources
3.5.1. Resource Interfaces and Classes
3.5.2. File Resources
3.5.3. Class Loader Resources
3.5.4. Theme Resources
3.5.5. Stream Resources
3.6. Error Handling
3.6.1. Error Indicator and message
3.6.2. Notifications
3.7. Application Environment
3.7.1. Creating Deployable WAR in Eclipse
3.7.2. Web Application Contents
3.7.3. Deployment Descriptor web.xml
3.8. Embedding Applications in Web Pages
3.8.1. Embedding Inside a <div> Element
3.8.2. Embedding Inside an <iframe> Element
4. User Interface Components
4.1. Overview
4.2. Label
4.3. Link
4.4. TextField
4.5. Rich Text Area
4.6. Date and Time Input
4.6.1. Calendar
4.6.2. DateField Locale
4.7. Button
4.8. Check Box
4.9. Selecting Items
4.9.1. Basic Select Component
4.9.2. Native Selection Component NativeSelect
4.9.3. Radio Button and Check Box Groups with OptionGroup
4.9.4. Twin Column Selection with TwinColSelect
4.9.5. Allowing Adding New Items
4.9.6. Multiple Selection Mode
4.10. Table
4.10.1. Selecting Items in a Table
4.10.2. CSS Style Rules
4.10.3. Table Features
4.10.4. Generated Table Columns
4.11. Tree
4.12. MenuBar
4.13. Embedded
4.13.1. Embedded Objects
4.13.2. Embedded Images
4.13.3. Browser Frames
4.14. Upload
4.15. Form
4.15.1. Form as a User Interface Component
4.15.2. Binding Form to Data
4.15.3. Validating Form Input
4.15.4. Buffering Form Data
4.16. ProgressIndicator
4.16.1. Doing Heavy Computation
4.17. Custom Composite Components
4.17.1. CustomComponent
4.18. Common Component Features
4.18.1. Sizing Components through Sizeable interface
5. Managing Layout
5.1. Background for Layout
5.2. Layout Components
5.2.1. VerticalLayout and HorizontalLayout
5.2.2. GridLayout
5.2.3. Panel
5.2.4. TabSheet
5.3. Layout Formatting
5.3.1. Layout Size
5.3.2. Layout Cell Alignment
5.3.3. Layout Cell Spacing
5.3.4. Layout Margins
5.4. Custom Layouts
6. Themes
6.1. Overview
6.2. Introduction to Cascading Style Sheets
6.2.1. Basic CSS Rules
6.2.2. Matching by Element Class
6.2.3. Matching by Descendant Relationship
6.2.4. Notes on Compatibility
6.3. Creating and Using Themes
6.3.1. Styling Standard Components
6.3.2. Using Themes
6.3.3. Theme Inheritance
7. Data Model
7.1. Overview
7.2. Properties
7.3. Holding properties in Items
7.4. Collecting items in Containers
8. Developing Custom Components
8.1. Overview
8.2. Google Web Toolkit Widgets
8.2.1. Extending an IT Mill Toolkit Widget
8.2.2. Example: A Color Picker GWT Widget
8.2.3. Styling GWT Widgets
8.3. Integrating a GWT Widget
8.3.1. Deserialization of Component State from Server
8.3.2. Serialization of Component State to Server
8.3.3. Example: Integrating the Color Picker Widget
8.4. Defining a Widget Set
8.4.1. GWT Module Descriptor
8.5. Server-Side Components
8.5.1. Server-Client Serialization
8.5.2. Client-Server Deserialization
8.5.3. Extending Standard Components
8.5.4. Example: Color Picker Server-Side Component
8.6. Using a Custom Component
8.6.1. Example: Color Picker Application
8.6.2. Web Application Deployment
8.7. GWT Widget Development
8.7.1. Creating a Widget Project in Eclipse
8.7.2. Importing GWT Installation Package
8.7.3. Creating a GWT Module
8.7.4. Compiling GWT Widget Sets
8.7.5. Ready to Run
8.7.6. Hosted Mode Browser
8.7.7. Out of Process Hosted Mode (OOPHM)
9. Advanced Web Application Topics
9.1. Debug and Production Mode
9.1.1. Debug Mode
9.1.2. Analyzing Layouts
9.1.3. Custom Layouts
9.1.4. Debug Functions for Component Developers
9.2. Special Characteristics of AJAX Applications
9.3. Resources
9.3.1. URI Handlers
9.3.2. Parameter Handlers
9.4. Shortcut Keys
9.5. Printing
10. User Interface Definition Language (UIDL)
10.1. API for Painting Components
10.2. JSON Rendering
Bibliography