anchor.diff:  [classname]#Binder#.[methodname]#forField# works like a builder where [methodname]#forField# starts the process, is followed by various configuration calls for the field and [methodname]#bind# acts as the finalizing method which applies the configuration.
   
   The validation state of each field is updated whenever the user modifies the value of that field.
  -The validation state is by default shown using [classname]#Component#.[methodname]#setComponentError# which is used by the layout that the field is shown in. Whenever an error is set, the component will also get a `v-<component>-error` class name, e.g. `v-textfield-error`. This error class will by default add a red border on the component. Most built-in layouts will show the error state as a red exclamation mark icon next to the component, so that hovering or tapping the icon shows a tooltip with the message text.
  +The validation state is by default shown using [classname]#AbstractComponent#.[methodname]#setComponentError# which is used by the layout that the field is shown in. Whenever an error is set, the component will also get a `v-<component>-error` class name, e.g. `v-textfield-error`. This error class will by default add a red border on the component. The component will also get a tooltip that shows the error message text.
   
   We can also customize the way a binder displays error messages to get more flexibility than what  [methodname]#setComponentError# provides.
   The easiest way of customizing this is to configure each binding to use its own [classname]#Label# that is used to show the status for each field.
  
positive.code: Label nameStatus = new Label();
  
  binder.forField(nameField)
    .withValidator(
      name -> name.length() >= 3,
      "Full name must contain at least three characters")
    .withValidationStatusHandler(status -> {
        nameStatus.setValue(status.getMessage().orElse(""));
        // Only show the label when validation has failed
        nameStatus.setVisible(status.isError());
      })
    .bind(Person::getName, Person::setName);
  ----
  
  In addition to showing a validation errors, [classname]#Binder# can also be configured to show a positive confirmation message when validation has passed or a neutral helper message when there is no other message to show for that field.
  
  [source, java]
  ----
  binder.forField(titleField)
    .setRequired("Every employee must have a title")
    .withHelperMessage("The title is printed on business cards")
    .bind(Person::getTitle, Person::setTitle);
  
  binder.forField(emailField)
    .withValidator(new EmailValidator(
      "This doesn't look like a valid email address"))
    .withConfirmationMessage(
      email -> email + " looks like a valid email address");
    .bind(Person::getEmail, Person::setEmail);
  
  ----
  
  The previous example also shows that the message to show can be generated dynamically based on the field value using a lambda expression or an explicit [classname]#Function# instance.
  The same way of defining the message is also available for other messages, such as any validation message.
  Just as other messages, the confirmation message can also be set as a static [classname]#String#.
  
  It is possible to add multiple validators for the same binding.
  In such cases, each validator will be run in the defined order until encountering one validator that doesn't accept the input value.
  The following example will first validate that the entered text looks like an email address, and only for seemingly valid email addresses it will continue checking that the email address is for the expected domain.
  
  [source, java]
  
negative.code: });
  ----
  
  === Automatic Saving
  
  Instead of manually saving field values to a business object instance, we can also bind the values directly to an instance.
  In this way, `Binder` takes care of automatically saving values from the fields.
  
  [source, java]
  ----
  