Class 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:
    Serialized Form
    • Constructor Detail

      • AbstractComponentDataGenerator

        public AbstractComponentDataGenerator()
    • Method Detail

      • 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)