anchor.diff:  [[components.fields.databinding]]
   == Data Binding and Conversions
   
  -Fields are strongly coupled with the Vaadin data model. The field value is
  -handled as a [classname]#Property# of the field component, as documented in
  -<<dummy/../../../framework/datamodel/datamodel-properties#datamodel.properties,"Properties">>.
  -Selection fields allow management of the selectable items through the
  -[classname]#Container# interface.
  -
  -Fields are __editors__ for some particular type. For example,
  +Fields and selects can be coupled with business data objects with the [classname]#Binder# class.
  +Select components also allow management of the selectable items through the
  +[classname]#DataSource# interface. [classname]#Binder# and [classname]#DataSource#
  +can be thought of as bridges between the __presentation__ and __model__ architectural layers.
  +
  +Fields are __editors__ for values of some particular type. For example,
   [classname]#TextField# allows editing [classname]#String# values. When bound to
  -a data source, the property type of the data model can be something different,
  +a data source, the type of the source property can be something different,
   say an [classname]#Integer#. __Converters__ are used for converting the values
  -between the representation and the model. They are described in
  +between the presentation and the model. They are described in
   <<dummy/../../../framework/datamodel/datamodel-properties#datamodel.properties.converter,"Converting
  -Between Property Type and Representation">>.
  +Between Model and Presentation Types">>.
   
   
   [[components.fields.valuechanges]]
  
positive.code: image::img/field-interface-hi.png[width=60%, scaledwidth=100%]
  
  You can set the field value with the [methodname]#setValue()# and read with the
  [methodname]#getValue()# method defined in the [classname]#Property# interface.
  The actual value type depends on the component.
  
  The [classname]#Field# interface defines a number of properties, which you can
  
negative.code: == The [classname]#Field# Interface
  
  The [classname]#Field# interface inherits the [classname]#Component#
  superinterface and also the [classname]#HasValue# interface to have a value for
  the field. [classname]#AbstractField# is the only class implementing the
  [classname]#Field# interface directly. The relationships are illustrated in
  <<figure.components.fields.field>>.
  