Preface Chapter 1: Writing Your First Vaadin-powered Application Chapter 2: Using Input Components and Forms -- Time to Listen to Users Chapter 3: Arranging Components into Layouts Chapter 4: Using Vaadin Navigation Capabilities Chapter 5: Using Tables -- Time to Talk to Users Chapter 6: Adding More Components Chapter 7: Customizing UI Components -- Time to Theme it Chapter 8: Developing Your Own Components Appendix: Pop Quiz Answers Index Preface Up Chapter 1: Writing Your First Vaadin-powered Application Creating and running Vaadin applications in Eclipse Installing Eclipse Time for action -- downloading and installing Eclipse Installing the Vaadin plugin for Eclipse Time for action -- installing the plugin Installing Run Jetty Run plugin Time for action -- installing Jetty Creating a new Vaadin project in Eclipse Time for action -- creating a new Vaadin project Deploying and running Vaadin applications in Eclipse Time for action -- deploying and running Creating and running Vaadin applications in NetBeans Installing NetBeans Time for action -- downloading and installing NetBeans Creating a new Vaadin project in NetBeans Time for action -- creating a new Vaadin project Deploying and running Vaadin applications in NetBeans Time for action -- deploying and testing Creating and running Vaadin applications using Maven Vaadin 7 Maven archetype Time for action -- creating a new Vaadin project Deploying and running Vaadin applications with Maven Time for action -- deploying and running Generated application explained Buttons Labels Layout margin A more interesting "hello world" application Text fields Time for action -- using text fields Notifications Summary Up Chapter 2: Using Input Components and Forms -- Time to Listen to Users The Time It application Time for action -- separating business classes from UI classes UI components as class members Time for action -- adding components as class members Time for action -- adding some infrastructure Comboboxes Time for action -- adding a combobox Responding to value changes Getting and setting the value of input components Tooltips Immediate mode Error indicators Time for action -- validating user input Layout spacing Time for action -- adding input component into the layout Checkboxes Removing components from layouts Time for action -- running the test set Time for action -- showing the results Thinking in Vaadin Servlets and GWT UI components hierarchy Component Vaadin's data model Time for action -- binding data to properties Items Containers More input components Text area Rich text area Option groups Time for action -- fixing the OptionGroup example Twin column selects Date/time pickers Time for action -- using an InlineDateField component Uploading files Summary Up Chapter 3: Arranging Components into Layouts Horizontal layouts Time for action -- the main layout Components size Time for action -- visualizing borders Time for action -- setting layouts size Expand ratio Time for action -- expanding components Split panels Time for action -- using split panels Implementing a button-based menu Time for action -- adding menu options Grid layouts Time for action -- using grid layouts Absolute layouts Time for action -- using absolute layouts Click listeners Time for action -- adding click listeners Form layouts Time for action -- using FormLayout Panels Time for action -- using panels Tab sheets Accordions Windows Summary Up Chapter 4: Using Vaadin Navigation Capabilities Getting request information Path info Time for action -- developing a simple website Parameters Time for action -- reading request parameters Fragments Changing the browser title Navigators and views Time for action -- using navigators Time for action -- navigating programmatically Keeping state after refresh Time for action -- preserving application state User session Menus Shortcut keys Shortcuts for buttons Time for action -- a tedious application Shortcuts for Window and Panel Summary Up Chapter 5: Using Tables -- Time to Talk to Users Tables Time for action -- my first table Headers Clicking on headers Footers Clicking on footers Boxwords game Time for action -- implementing the game UI Page length Selecting items in tables Time for action -- listening to clicks Reading data from tables Time for action -- finishing the game Editable tables Table field factories Time for action -- using a custom field factory Understanding generated columns Collapsing and reordering columns Summary Up Chapter 6: Adding More Components Trees Time for action -- my first tree Tree events Tree tables Time for action -- a file browser Progress indicators Icons Time for action -- adding icons Images, Flash, video, audio, and other web content Time for action -- render web content Sliders Color picker File download Context menus Drag-and-drop Summary Up Chapter 7: Customizing UI Components -- Time to Theme it Vaadin themes Time for action -- changing themes Introduction to CSS and Sass Variables Nesting Mixins Introducing Firebug and Chrome inspector Time for action -- inspecting HTML Creating new themes Time for action -- creating a new Vaadin theme Styling labels Time for action -- creating a new Vaadin theme Adding CSS classes to components Styling text fields Styling buttons Styling panels Styling menus Styling tables Summary Up Chapter 8: Developing Your Own Components Custom components Time for action -- creating a custom component Client side applications Time for action -- creating a client side application Widgets Time for action -- creating a widget Remote procedure calls Extensions Time for action -- creating an extension Custom JavaScript Calling JavaScript from the server Calling the server from JavaScript JavaScript components Time for action -- creating a JavaScript component JavaScript extensions Summary Up Appendix: Pop Quiz Answers Chapter 1, Writing Your First Vaadin-powered Application Chapter 2, Using Input Components and Forms -- Time to Listen to Users Chapter 3, Arranging Components into Layouts Chapter 4, Using Vaadin Navigation Capabilities Chapter 5, Using Tables -- Time to Talk to Users Chapter 6, Adding More Components Chapter 7, Customizing UI Components -- Time to Theme it Chapter 8, Developing Your Own Components