org.apache.jorphan.gui

## Class ObjectTableSorter

- java.lang.Object
- - javax.swing.RowSorter<ObjectTableModel>
  - - org.apache.jorphan.gui.ObjectTableSorter

-     public class ObjectTableSorter
      extends RowSorter<ObjectTableModel>

  Implementation of a `RowSorter` for `ObjectTableModel`
  Since:
    3.2

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `ObjectTableSorter.PreserveLastRowComparator`
    `class` | `ObjectTableSorter.Row` View row with model mapping.

    - ### Nested classes/interfaces inherited from class javax.swing.RowSorter

      `RowSorter.SortKey`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ObjectTableSorter(ObjectTableModel model)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `allRowsChanged()`
    `int` | `convertRowIndexToModel(int index)`
    `int` | `convertRowIndexToView(int index)`
    `ObjectTableSorter` | `fixLastRow()` Sets `primary comparator` to one that don't sort last row.
    `protected Comparator<ObjectTableSorter.Row>` | `getComparatorFromSortKey(RowSorter.SortKey sortkey)`
    `protected Comparator<?>` | `getDefaultComparator(int column)` Builds a default comparator based on model column class.
    `Comparator<ObjectTableSorter.Row>` | `getFallbackComparator()` Returns Comparator if all sorted columns matches.
    `ObjectTableModel` | `getModel()`
    `int` | `getModelRowCount()`
    `Comparator<ObjectTableSorter.Row>` | `getPrimaryComparator()` Returns Comparator used prior to sorted columns.
    `List<? extends RowSorter.SortKey>` | `getSortKeys()`
    `Comparator<?>` | `getValueComparator(int column)` Returns Comparator used on column.
    `int` | `getViewRowCount()`
    `protected void` | `invalidate()`
    `protected boolean` | `isSortable(int column)`
    `protected boolean` | `isSorted()`
    `protected boolean` | `isSorted(int column)`
    `void` | `modelStructureChanged()`
    `protected void` | `rowsChanged(int firstRow, int endRow, boolean deleted, boolean inserted)`
    `void` | `rowsDeleted(int firstRow, int endRow)`
    `void` | `rowsInserted(int firstRow, int endRow)`
    `void` | `rowsUpdated(int firstRow, int endRow)`
    `void` | `rowsUpdated(int firstRow, int endRow, int column)`
    `ObjectTableSorter` | `setFallbackComparator(Comparator<ObjectTableSorter.Row> comparator)` Sets a fallback comparator (defaults to model index comparison) if none `primary`, neither `column value comparators` can make differences between two rows.
    `ObjectTableSorter` | `setPrimaryComparator(Comparator<ObjectTableSorter.Row> primaryComparator)` Comparator used prior to sorted columns.
    `void` | `setSortKey(RowSorter.SortKey sortkey)`
    `void` | `setSortKeys(List<? extends RowSorter.SortKey> keys)`
    `ObjectTableSorter` | `setValueComparator(int column, Comparator<?> comparator)` Assign comparator to given column, if `null` a getDefaultComparator(int) default one is used instead.
    `protected void` | `sort()` Sort table
    `void` | `toggleSortOrder(int column)`
    `protected void` | `updateModelToView()` fill in modelToView list with index of view
    `protected void` | `validate()`

    - ### Methods inherited from class javax.swing.RowSorter

      `addRowSorterListener, fireRowSorterChanged, fireSortOrderChanged, removeRowSorterListener`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ObjectTableSorter

          public ObjectTableSorter(ObjectTableModel model)

  - ### Method Detail

    - #### getPrimaryComparator

          public Comparator<ObjectTableSorter.Row> getPrimaryComparator()

      Returns Comparator used prior to sorted columns.
      Returns:
        Comparator used prior to sorted columns.

    - #### getValueComparator

          public Comparator<?> getValueComparator(int column)

      Returns Comparator used on column.
      Parameters:
        `column` - to be compared
      Returns:
        Comparator used on column.

    - #### getFallbackComparator

          public Comparator<ObjectTableSorter.Row> getFallbackComparator()

      Returns Comparator if all sorted columns matches. Defaults to model index comparison.
      Returns:
        Comparator if all sorted columns matches. Defaults to model index comparison.

    - #### setPrimaryComparator

          public ObjectTableSorter setPrimaryComparator(Comparator<ObjectTableSorter.Row> primaryComparator)

      Comparator used prior to sorted columns.
      Parameters:
        `primaryComparator` - `Comparator` to be used first
      Returns:
        `this`

    - #### fixLastRow

          public ObjectTableSorter fixLastRow()

      Sets `primary comparator` to one that don't sort last row.
      Returns:
        `this`

    - #### setValueComparator

          public ObjectTableSorter setValueComparator(int column,
                                                      Comparator<?> comparator)

      Assign comparator to given column, if `null` a getDefaultComparator(int) default one is used instead.
      Parameters:
        `column` - Model column index.
        `comparator` - Column value comparator.
      Returns:
        `this`

    - #### getDefaultComparator

          protected Comparator<?> getDefaultComparator(int column)

      Builds a default comparator based on model column class. `Collator.getInstance()` for `String`, `natural order` for `Comparable`, no sort support for others.
      Parameters:
        `column` - Model column index.
      Returns:
        default `Comparator`

    - #### setFallbackComparator

          public ObjectTableSorter setFallbackComparator(Comparator<ObjectTableSorter.Row> comparator)

      Sets a fallback comparator (defaults to model index comparison) if none `primary`, neither `column value comparators` can make differences between two rows.
      Parameters:
        `comparator` - to be used, when all other `Comparator`s can't see a difference
      Returns:
        `this`

    - #### getModel

          public ObjectTableModel getModel()

      Specified by:
        `getModel` in class `RowSorter<ObjectTableModel>`

    - #### toggleSortOrder

          public void toggleSortOrder(int column)

      Specified by:
        `toggleSortOrder` in class `RowSorter<ObjectTableModel>`

    - #### convertRowIndexToModel

          public int convertRowIndexToModel(int index)

      Specified by:
        `convertRowIndexToModel` in class `RowSorter<ObjectTableModel>`

    - #### convertRowIndexToView

          public int convertRowIndexToView(int index)

      Specified by:
        `convertRowIndexToView` in class `RowSorter<ObjectTableModel>`

    - #### setSortKeys

          public void setSortKeys(List<? extends RowSorter.SortKey> keys)

      Specified by:
        `setSortKeys` in class `RowSorter<ObjectTableModel>`

    - #### setSortKey

          public void setSortKey(RowSorter.SortKey sortkey)

    - #### getSortKeys

          public List<? extends RowSorter.SortKey> getSortKeys()

      Specified by:
        `getSortKeys` in class `RowSorter<ObjectTableModel>`

    - #### getViewRowCount

          public int getViewRowCount()

      Specified by:
        `getViewRowCount` in class `RowSorter<ObjectTableModel>`

    - #### getModelRowCount

          public int getModelRowCount()

      Specified by:
        `getModelRowCount` in class `RowSorter<ObjectTableModel>`

    - #### modelStructureChanged

          public void modelStructureChanged()

      Specified by:
        `modelStructureChanged` in class `RowSorter<ObjectTableModel>`

    - #### allRowsChanged

          public void allRowsChanged()

      Specified by:
        `allRowsChanged` in class `RowSorter<ObjectTableModel>`

    - #### rowsInserted

          public void rowsInserted(int firstRow,
                                   int endRow)

      Specified by:
        `rowsInserted` in class `RowSorter<ObjectTableModel>`

    - #### rowsDeleted

          public void rowsDeleted(int firstRow,
                                  int endRow)

      Specified by:
        `rowsDeleted` in class `RowSorter<ObjectTableModel>`

    - #### rowsUpdated

          public void rowsUpdated(int firstRow,
                                  int endRow)

      Specified by:
        `rowsUpdated` in class `RowSorter<ObjectTableModel>`

    - #### rowsChanged

          protected void rowsChanged(int firstRow,
                                     int endRow,
                                     boolean deleted,
                                     boolean inserted)

    - #### rowsUpdated

          public void rowsUpdated(int firstRow,
                                  int endRow,
                                  int column)

      Specified by:
        `rowsUpdated` in class `RowSorter<ObjectTableModel>`

    - #### isSortable

          protected boolean isSortable(int column)

    - #### isSorted

          protected boolean isSorted(int column)

    - #### isSorted

          protected boolean isSorted()

    - #### invalidate

          protected void invalidate()

    - #### validate

          protected void validate()

    - #### getComparatorFromSortKey

          protected Comparator<ObjectTableSorter.Row> getComparatorFromSortKey(RowSorter.SortKey sortkey)

    - #### sort

          protected void sort()

      Sort table

    - #### updateModelToView

          protected void updateModelToView()

      fill in modelToView list with index of view

Copyright © 1998-2022 Apache Software Foundation. All Rights Reserved.