Class AbstractComponentDataGenerator<T>

java.lang.Object
com.vaadin.flow.data.provider.AbstractComponentDataGenerator<T>
Type Parameters:
T - the data type
All Implemented Interfaces:
DataGenerator<T>, Serializable
Direct Known Subclasses:
ComponentDataGenerator

public abstract class AbstractComponentDataGenerator<T> extends Object implements DataGenerator<T>
Abstract class used as base for DataGenerators that need to manage the lifecycle of components, according to what items are requested or destroyed.
Since:
1.0.
Author:
Vaadin Ltd
See Also:
  • Constructor Details

    • AbstractComponentDataGenerator

      public AbstractComponentDataGenerator()
  • Method Details

    • refreshData

      public void refreshData(T item)
      Description copied from interface: DataGenerator
      Informs the DataGenerator that a data object has been updated. This method should update any unneeded information stored for given item.
      Specified by:
      refreshData in interface DataGenerator<T>
      Parameters:
      item - the updated item
    • destroyData

      public void destroyData(T item)
      Description copied from interface: DataGenerator
      Informs the DataGenerator that the given data item has been dropped and is no longer needed. This method should clean up any unneeded information stored for this item.
      Specified by:
      destroyData in interface DataGenerator<T>
      Parameters:
      item - the dropped data item
    • destroyAllData

      public void destroyAllData()
      Description copied from interface: DataGenerator
      Informs the DataGenerator that all data has been dropped. This method should clean up any unneeded information stored for items.
      Specified by:
      destroyAllData in interface DataGenerator<T>
    • getContainer

      protected abstract Element getContainer()
      Gets the element where the generated components will be attached to.
      Returns:
      the container
    • createComponent

      protected abstract Component createComponent(T item)
      Creates a new component based on the provided item.
      Parameters:
      item - the data item, possibly null
      Returns:
      a Component which represents the provided item
    • updateComponent

      protected Component updateComponent(Component currentComponent, T item)
      Updates an existing component after the item has been updated. By default, it creates a new component instance via createComponent(Object).
      Parameters:
      currentComponent - the current component used to represent the item, not null
      item - the updated item
      Returns:
      the component that should represent the updated item, not null
    • getItemKey

      protected abstract String getItemKey(T item)
      Gets a unique key for a given item. Items with the same keys are considered equal.
      Parameters:
      item - the model item
      Returns:
      a unique key for the item
    • registerRenderedComponent

      protected void registerRenderedComponent(String itemKey, Component component)
      Appends the component to the container and registers it for future use during the lifecycle of the generator.
      Parameters:
      itemKey - the key of the model item
      component - the component to be attached to the container
    • getRenderedComponent

      protected Component getRenderedComponent(String itemKey)