anchor.diff:  While each listing component has it's own API for configuring exactly how the data is represented and how it can be manipulated, they all share the same mechanisms for receiving data to show.
   
   The items are generally either loaded directly from memory or lazy loaded from some kind of backend.
  -Regardless of how the items are loaded, the component is configured with one or several callbacks or JavaBean property names that define how the item should be displayed.
  +Regardless of how the items are loaded, the component is configured with one or several callbacks that define how the item should be displayed.
   
   In the following example, a [classname]#ComboBox# that lists status items is configured to use the [classname]#Status#.[methodname]#getCaption()# method to represent each status.
  -There is also a [classname]#Grid#, which is configured with one column from the person's name and another column that converts the year of birth to a string for displaying.
  +There is also a [classname]#Grid#, which is configured with one column from the person's name and another showing the year of birth.
   
   [source, java]
   ----
   ComboBox<Status> comboBox = new ComboBox<>();
  -comboBox.setItemCaptionProvider(Status::getCaption);
  -
  -Grid<Person> grid = new Grid<>();
  -grid.addColumn("Name", Person::getName);
  -grid.addColumn("Year of birth",
  -  person -> Integer.toString(person.getYearOfBirth()));
  +comboBox.setItemCaptionGenerator(Status::getCaption);
  +
  +Grid<Person> grid = new Grid<>();
  +grid.addColumn(Person::getName).setCaption("Name");
  +grid.addColumn(Person::getYearOfBirth)
  +  .setCaption("Year of birth");
   ----
   
   [NOTE]
   In this example, it would not even be necessary to define any item caption provider for the combo box if [classname]#Status#.[methodname]#toString()# would be implemented to return a suitable text. [classname]#ComboBox# is by default configured to use [methodname]#toString()# for finding a caption to show.
   
   [NOTE]
  -The `Year of birth` column will use [classname]#Grid#'s default [classname]#TextRenderer# which requires the column value to be a [classname]#String#. We could for instance use a [classname]#NumberRenderer# instead, and then the renderer would take care of converting the the number according to its configuration.
  -
  -After we have told the component how the data should be shown, we only need to give it some data to actually show. The easiest way of doing that is as a [interfacename]#java.util.Collection# of item instances.
  -
  -[source, java]
  -----
  +The `Year of birth` column will use [classname]#Grid#'s default [classname]#TextRenderer# which shows any values as a `String`. We could use a [classname]#NumberRenderer# instead, and then the renderer would take care of converting the the number according to its configuration with a formatting setting of our choice.
  +
  +After we have told the component how the data should be shown, we only need to give it some data to actually show. The easiest way of doing that is to directly pass the values to show to `setItems`.
  +
  +[source, java]
  +----
  +// Sets items as a collection
   comboBox.setItems(EnumSet.allOf(Status.class));
   
  -List<Person> persons = Arrays.asList(
  +// Sets items using varargs
  +grid.setItems(
     new Person("George Washington", 1732),
     new Person("John Adams", 1735),
     new Person("Thomas Jefferson", 1743),
  -  new Person("James Madison", 1751));
  -
  -grid.setItems(persons);
  +  new Person("James Madison", 1751)
  +);
   ----
   
   Listing components that allow the user to control the display order of the items are automatically able to sort data by any property as long as the property type implements [classname]#Comparable#.
  
positive.code: 
      personToChange.setName("Changed person");
  
      dataProvider.refresh(0);
  });
  ----
  
  [TIP]
  There might be situations where we cannot tell exactly how the data has changed, but only that some parts might have been modified. We can then use the [methodname]#refreshAll()# method, which will make the components reload all the data.
  
  == Lazy Loading Data to a Listing
  
  
negative.code:       ).stream();
    },
    // The number of persons is the same regardless of ordering
    query -> getPersonService().getPersonCount()
  );
  ----
  
  