anchor.diff:  ----
   See the http://demo.vaadin.com/book-examples-vaadin7/book#component.label.basic[on-line example, window="_blank"].
   
  -[classname]#Label# implements the [interfacename]#Property# interface to allow
  -accessing the text value, so you can get and set the text with
  -[methodname]#getValue()# and [methodname]#setValue()#.
  +You can get and set the text of a [classname]#Label# with the
  +[methodname]#getValue()# and [methodname]#setValue()# methods.
   
   [source, java]
   ----
  
positive.code: 
  endif::web[]
  
  [[components.label.databinding]]
  == Data Binding
  
  While [classname]#Label# is not a field component, it is a
  [interfacename]#Property.Viewer# and can be bound to a property data source,
  described in
  <<dummy/../../../framework/datamodel/datamodel-properties#datamodel.properties,"Properties">>.
  You can specify the data source either in the constructor or by the
  [methodname]#setPropertyDataSource()# method.
  
  
  [source, java]
  ----
  // Some property
  ObjectProperty<String> property =
      new ObjectProperty<String>("some value");
  
  // Label that is bound to the property
  Label label = new Label(property);
  ----
  See the http://demo.vaadin.com/book-examples-vaadin7/book#component.label.binding[on-line example, window="_blank"].
  
  Further, as [classname]#Label# is a [interfacename]#Property#, you can edit its
  value with a property editor, such as a field:
  
  
  [source, java]
  ----
  Label label = new Label("some value");
  TextField editor = new TextField();
  editor.setPropertyDataSource(label);
  editor.setImmediate(true);
  ----
  See the http://demo.vaadin.com/book-examples-vaadin7/book#component.label.delegation[on-line example, window="_blank"].
  
  However, [classname]#Label# is __not__ a [interfacename]#Property.Editor#, so it
  is read-only when bound to a data source. Therefore, you can not use
  [methodname]#setValue()# to set the value of a connected data source through a
  [classname]#Label# nor bind the label to an editor field, in which case writes
  would be delegated through the label.
  
  
  [[components.label.css]]
  == CSS Style Rules
  
  
negative.code:                                  label.getValue());
  
  // Change the label's text
  editor.onChange(label::setValue);
  // or onChange(value -> label.setValue(value));
  ----
  See the http://demo.vaadin.com/book-examples-vaadin7/book#component.label.basic[on-line example, window="_blank"].
  
  Even though [classname]#Label# is text and is often used as a caption, it is a
  normal component and therefore also has a caption that you can set with
  