Class ListSortUI

java.lang.Object
org.jdesktop.swingx.plaf.basic.core.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 Details

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

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