This book provides an overview of the Vaadin Framework and covers the most important topics that you might encounter while developing applications with it. A more detailed documentation of the individual classes, interfaces, and methods is given in the Vaadin API Reference.

Writing this manual is ongoing work and it is rarely completely up-to-date with the quick-evolving product. This revision represents a snapshot in time while working towards Vaadin 6.8. After the original 4th Edition, the book has been reorganized in two parts so that the Part I documents the core framework and the Part II the official add-on components.

You can browse an online version of this book at the Vaadin website at http://vaadin.com/book. You can also find PDF and EPUB versions of the book there. You may find the other versions more easily searchable than this printed book, but the content is the same.

This edition includes an index, which is not yet complete. Many sections are under work and will be expanded in future.

The Book of Vaadin gives an introduction to what Vaadin is and how you use it to develop web applications.

Part I: Vaadin Core Framework

Chapter 1, Introduction

The chapter gives introduction to the application architecture supported by Vaadin, the core design ideas behind the framework, and some historical background.

Chapter 2, Getting Started with Vaadin

This chapter gives practical instructions for installing Vaadin and the reference toolchain, including the Vaadin Plugin for Eclipse, how to run and debug the demos, and how to create your own application project in the Eclipse IDE.

Chapter 3, Architecture

This chapter gives an introduction to the architecture of Vaadin and its major technologies, including AJAX, Google Web Toolkit, JSON, and event-driven programming.

Chapter 4, Writing a Web Application

This chapter gives all the practical knowledge required for creating applications with Vaadin, such as window management, application lifecycle, deployment in a servlet container, and handling events, errors, and resources.

Chapter 5, User Interface Components

This chapter essentially gives the reference documentation for all the core user interface components in Vaadin and their most significant features. The text gives examples for using each of the components.

Chapter 6, Managing Layout

This chapter describes the layout components, which are used for managing the layout of the user interface, just like in any desktop application frameworks.

Chapter 7, Visual User Interface Design with Eclipse

This chapter gives instructions for using the visual editor for Eclipse, which is included in the Vaadin Plugin for the Eclipse IDE.

Chapter 8, Themes

This chapter gives an introduction to Cascading Style Sheets (CSS) and explains how you can use them to build custom visual themes for your application.

Chapter 9, Binding Components to Data

This chapter gives an overview of the built-in data model of Vaadin, consisting of properties, items, and containers.

Chapter 10, Vaadin SQLContainer

This chapter gives documentation for the SQLContainer, which allows binding Vaadin components to SQL queries.

Chapter 11, Developing New Components

This chapter describes the process of creating new client-side widgets with Google Web Toolkit (GWT) and integrating them with server-side counterparts. The chapter also gives practical instructions for creating widget projects in Eclipse, and using the GWT Development Mode to debug widgets.

Chapter 12, Advanced Web Application Topics

This chapter provides many special topics that are commonly needed in applications, such as opening new browser windows, embedding applications in regular web pages, low-level management of resources, shortcut keys, debugging, etc.

Chapter 13, Portal Integration

This chapter is describes the development of Vaadin applications as portlets which you can deploy to any portal supporting Java Portlet API 2.0 (JSR-286). The chapter also describes the special support for Liferay and the Control Panel, IPC, and WSRP add-ons.

Chapter 14, Rapid Development Using Vaadin and Roo

This chapter is a tutorial for rapid development of Vaadin applications with Spring Roo and the Vaadin Plugin for Eclipse. The tutorial includes aspects such as internationalization, testing, and database binding with the JPAContainer add-on.

Part II: Vaadin Add-ons

Chapter 15, Using Vaadin Add-ons

This chapter gives a instructions for downloading and installing add-on components from the Vaadin Directory.

Chapter 16, Vaadin Calendar

This chapter gives developer documentation for the Calendar add-on component.

Chapter 17, Vaadin Timeline

This chapter gives an introduction to the Timeline add-on component. The full documentation is included in the product manual.

Chapter 18, Vaadin JPAContainer

This chapter gives documentation for the JPAContainer add-on, which allows binding Vaadin components directly to relational and other databases using Java Persistence API (JPA).

Chapter 19, Mobile Applications with TouchKit

This chapter gives examples and reference documentation for using the Vaadin TouchKit add-on for developing mobile applications.

Chapter 20, Vaadin TestBench

This chapter gives the complete documentation for using the Vaadin TestBench tool for recording and executing user interface regression tests for Vaadin applications.

Appendix A, User Interface Definition Language (UIDL)

This appendix gives an outline of the low-level UIDL messaging language, normally hidden from the developer. The chapter includes the description of the serialization API needed for synchronizing the component state between the client-side and server-side components.

Appendix B, Songs of Vaadin

Mythological background of the name Vaadin.

The Vaadin websites offer plenty of material that can help you understand what Vaadin is, what you can do with it, and how you can do it.

Demo Applications

The most important demo application for Vaadin is the Sampler, which demonstrates the use of all basic components and features. You can run it on-line at http://demo.vaadin.com/ or download it as a WAR from the Vaadin download page.

Most of the code examples in this book and many others can be found online at http://demo.vaadin.com/book-examples/book/.

Cheat Sheet

The two-page cheat sheet illustrates the basic relationship hierarchy of the user interface and data binding classes and interfaces. You can download it at http://dev.vaadin.com/browser/doc/trunk/cheatsheet/vaadin-cheatsheet-duplex.pdf.

Refcard

The six-page DZone Refcard gives an overview to application development with Vaadin. It includes a diagram of the user interface and data binding classes and interfaces. You can find more information about it at https://vaadin.com/refcard.

Address Book Tutorial

The Address Book is a sample application accompanied with a tutorial that gives detailed step-by-step instructions for creating a real-life web application with Vaadin. You can find the tutorial from the product website.

Developer's Website

Vaadin Developer's Site at http://dev.vaadin.com/ provides various online resources, such as the ticket system, a development wiki, source repositories, activity timeline, development milestones, and so on.

The wiki provides instructions for developers, especially for those who wish to check-out and compile Vaadin itself from the source repository. The technical articles deal with integration of Vaadin applications with various systems, such as JSP, Maven, Spring, Hibernate, and portals. The wiki also provides answers to Frequently Asked Questions.

Online Documentation

You can read this book online at http://vaadin.com/book. Lots of additional material, including technical HOWTOs, answers to Frequently Asked Questions and other documentation is also available on Vaadin web-site.

Stuck with a problem? No need to lose your hair over it, the Vaadin Framework developer community and the Vaadin company offer support for all of your needs.

Community Support Forum

You can find the user and developer community forum for Vaadin at http://vaadin.com/forum. Please use the forum to discuss any problems you might encounter, wishes for features, and so on. The answer for your problems may already lie in the forum archives, so searching the discussions is always the best way to begin.

Report Bugs

If you have found a possible bug in Vaadin, the demo applications, or the documentation, please report it by filing a ticket at the Vaadin developer's site at http://dev.vaadin.com/. You may want to check the existing tickets before filing a new one. You can make a ticket to make a request for a new feature as well, or to suggest modifications to an existing feature.

Commercial Support

Vaadin offers full commercial support and training services for the Vaadin Framework and related products. Read more about the commercial products at http://vaadin.com/pro for details.