Class AbstractDataProvider<T>

  • Type Parameters:
    T - the data type of records in the list
    All Implemented Interfaces:
    ProvidesKey<T>
    Direct Known Subclasses:
    AsyncDataProvider, ListDataProvider

    public abstract class AbstractDataProvider<T>
    extends java.lang.Object
    implements ProvidesKey<T>
    A base implementation of a data source for HasData implementations.
    • Constructor Detail

      • AbstractDataProvider

        protected AbstractDataProvider()
        Construct an AbstractDataProvider without a key provider.
      • AbstractDataProvider

        protected AbstractDataProvider​(ProvidesKey<T> keyProvider)
        Construct an AbstractDataProvider with a given key provider.
        Parameters:
        keyProvider - a ProvidesKey object
    • Method Detail

      • addDataDisplay

        public void addDataDisplay​(HasData<T> display)
        Adds a data display to this adapter. The current range of interest of the display will be populated with data.
        Parameters:
        display - a HasData.
      • getDataDisplays

        public java.util.Set<HasData<T>> getDataDisplays()
        Get the set of displays currently assigned to this adapter.
        Returns:
        the set of HasData
      • getKey

        public java.lang.Object getKey​(T item)
        Get the key for a list item. The default implementation returns the item itself.
        Specified by:
        getKey in interface ProvidesKey<T>
        Parameters:
        item - the list item
        Returns:
        the key that represents the item
      • getRanges

        public Range[] getRanges()
        Get the current ranges of all displays.
        Returns:
        the ranges
      • removeDataDisplay

        public void removeDataDisplay​(HasData<T> display)
        Remove the given data display.
        Parameters:
        display - a HasData instance
        Throws:
        java.lang.IllegalStateException - if the display is not present
      • onRangeChanged

        protected abstract void onRangeChanged​(HasData<T> display)
        Called when a display changes its range of interest.
        Parameters:
        display - the display whose range has changed
      • updateRowCount

        protected void updateRowCount​(int count,
                                      boolean exact)
        Inform the displays of the total number of items that are available.
        Parameters:
        count - the new total row count
        exact - true if the count is exact, false if it is an estimate
      • updateRowData

        protected void updateRowData​(int start,
                                     java.util.List<T> values)
        Inform the displays of the new data.
        Parameters:
        start - the start index
        values - the data values
      • updateRowData

        protected void updateRowData​(HasData<T> display,
                                     int start,
                                     java.util.List<T> values)
        Informs a single display of new data.
        Parameters:
        display - the display to be updated
        start - the start index
        values - the data values