Vaadin 7 alpha2 - Renewed Client Side API

Vaadin 7 alpha2 contains significant changes in the client side API. These changes affect all client side add-ons, both existing and upcoming.


Connector and Widget

The client side part of a Component has been split into two parts: Widget and Connector. The Widget is any standard GWT widget that can be used with or without Vaadin. The Connector is the part that connects the widget to Vaadin and, more specifically, to its server side counterpart (Component). The responsibility of the Connector is to communicate with its server counterpart, configure the widget and also listen for events from the widget and communicate them to the server as needed.

Splitting connector from the widget has also enabled creation of abstract parent classes for the connector classes. Much functionality that previously were in ApplicationConnection is now available in the super class.

The split has been done to make components easier to understand and maintain. It also makes it much easier to integrate existing GWT widgets with Vaadin as you only have to create the Connector and can reuse the existing Widget as-is.


Client - Server Mapping

Mapping the client side connector to its server side component is now done on the client side using the @Connect annotation to avoid problems with certain application servers and their class loaders.


Component Hierarchy

In Vaadin 6 the framework handles the component hierarchy on the server side but leaves it to the component containers to paint the hierarchy of its children. Vaadin 7 takes over this responsibility and completely handles communication of the hierarchy to the client and maintains the hierarchy on the client side as well as on the server side. The component hierarchy enables you to get a reference to your children or parent connectors, read their state etc.


Component Visibility

An invisible component in Vaadin 7 alpha 2 is never sent to the client side. It is therefore handled in the exact same way as if it would not exist. On the server side invisible components exist normally in the component hierarchy.


For short examples on how to use the new features, check out the Vaadin 7 mini tutorials:
https://vaadin.com/wiki/-/wiki/Main/Vaadin+7

For information on how to migrate from Vaadin 6 to Vaadin 7, see
http://dev.vaadin.com/wiki/Vaadin7/MigrationGuide

This is an alpha release so we expect there to be bugs and still expect changes will be made to the API and functionality before the final 7.0.0 release. All your comments on the new features are welcome. Please post all Vaadin 7 related comments in the Vaadin 7 category of the forum.
12297.png