Class ListSortUI


  • public final class ListSortUI
    extends Object
    ListSortUI provides support for managing the synchronization between RowSorter, SelectionModel and ListModel if a JXList is sortable.

    This implementation is an adaption of JTable.SortManager fit to the needs of a ListUI. In contrast to JTable tradition, the ui delegate has full control about listening to model/selection changes and updating the list accordingly. So it's role is that of a helper to the ui-delgate (vs. as a helper of the JTable). It's still up to the ListUI itself to listen to model/selection and propagate the notification to this class, if a sorter is installed, but still do the usual updates (layout, repaint) itself. On the other hand, listening to the sorter and updating list state accordingly is completely done by this.

    • Constructor Detail

      • ListSortUI

        public ListSortUI​(JXList list,
                          RowSorter<? extends ListModel> sorter)
        Intanstiates a SortUI on the list which has the given RowSorter.
        Parameters:
        list - the list to control, must not be null
        sorter - the rowSorter of the list, must not be null
        Throws:
        NullPointerException - if either the list or the sorter is null
        IllegalStateException - if the sorter is not the sorter installed on the list
    • Method Detail

      • dispose

        public void dispose()
        Disposes any resources used by this SortManager. Note: this instance must not be used after dispose!
      • modelChanged

        public void modelChanged​(ListDataEvent e)
        Called after notification from ListModel.
        Parameters:
        e - the change event from the listModel.
      • viewSelectionChanged

        public void viewSelectionChanged​(ListSelectionEvent e)
        Called after notification from selectionModel. Invoked when the selection, on the view, has changed.
      • sortedChanged

        protected void sortedChanged​(RowSorterEvent e)
        Called after notification from RowSorter.
        Parameters:
        e - RowSorter event of type SORTED.
      • createRowSorterListener

        protected RowSorterListener createRowSorterListener()
        Creates and returns a RowSorterListener. This implementation calls sortedChanged if the event is of type SORTED.
        Returns:
        rowSorterListener to install on sorter.