Version 1.8 provides bindings for Vaadin Forms and Vaadin Grid.
The bindings can be customized for any datatype whether it is a custom model class or a java basic type.

The sample grid derived directly from the datamodel
		favoriteProductName = addColumn(entity -> Optional.ofNullable(entity.getFavoriteProduct()).map(p -> p.
			getName())
			.orElse(null));
		favoriteProductName.setKey(COLUMN_FAVORITE_PRODUCT_NAME);
		favoriteProductName.setId("favoriteProductName");
		premium = addComponentColumn(entity -> {
				Checkbox cb = new Checkbox(entity.isPremium());
				cb.setEnabled(false);
				return cb;
			});
		premium.setKey(COLUMN_PREMIUM);
		premium.setId("premium");

The custom code for the checkbox adds a component column in the grid initialization per default whenever a boolean field is displayed.

Input form created from the datamodel

Binding to fields in an input form will also create a unique non-changing id that can be used for integration testing.

See also: Documentation