table.model
Class Sorter

java.lang.Object
  |
  +--table.model.Sorter

public class Sorter
extends java.lang.Object

Perform sorting of table's data.

Version:
1.0
Author:
Stanislav Lapitsky

Nested Class Summary
(package private)  class Sorter.IndexPair
          Rerpresents pair of indexes.
 
Field Summary
protected  java.util.ArrayList pairList
          Contains indexes pairs which are used for quick sort.
protected  int pairListPointer
          Current index pair.
protected  int[] sortColumnIndexes
          Sort columns.
protected  boolean[] sortOrders
          Sort orders for each column from sortColumnIndexes.
protected  int[] sortResult
          Array of sorted row indexes.
protected  javax.swing.table.TableModel sourceModel
          Original TableModel.
 
Constructor Summary
Sorter()
          Creates new instance.
Sorter(javax.swing.table.TableModel source)
          Constructs sorter with specified TableModel.
Sorter(javax.swing.table.TableModel source, int[] sortColumnIndexes, boolean[] sortOrders)
          Constructs sorter with specified TableModel and group indexes.
 
Method Summary
protected  void addIndexPair(Sorter.IndexPair pair)
          Adds index pair to sort.
protected  int compare(int startIndex, int endIndex)
          Compares two table's row.
static javax.swing.table.TableModel createModel()
           
static void main(java.lang.String[] args)
           
protected  void quickSort(int startIndex, int endIndex)
          Perform quick sort of part of table data.
 void setSort(int[] sortColumnIndexes, boolean[] sortOrders)
          Sets sort regim.
 void setSourceTableModel(javax.swing.table.TableModel source)
          Sets original TableModel.
 int[] sort()
          Perform sorting,
protected  void swap(int startIndex, int endIndex)
          Perform logical swap (swap of row indexes).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sourceModel

protected javax.swing.table.TableModel sourceModel
Original TableModel.


sortColumnIndexes

protected int[] sortColumnIndexes
Sort columns.


sortOrders

protected boolean[] sortOrders
Sort orders for each column from sortColumnIndexes.


pairList

protected java.util.ArrayList pairList
Contains indexes pairs which are used for quick sort.


pairListPointer

protected int pairListPointer
Current index pair.


sortResult

protected int[] sortResult
Array of sorted row indexes.

Constructor Detail

Sorter

public Sorter()
Creates new instance.


Sorter

public Sorter(javax.swing.table.TableModel source)
Constructs sorter with specified TableModel.

Parameters:
source - original TableModel.

Sorter

public Sorter(javax.swing.table.TableModel source,
              int[] sortColumnIndexes,
              boolean[] sortOrders)
Constructs sorter with specified TableModel and group indexes.

Parameters:
source - original TableModel.
sortColumnIndexes - group indexes.
sortOrders - sort orders (true ascending).
Method Detail

setSourceTableModel

public void setSourceTableModel(javax.swing.table.TableModel source)
Sets original TableModel.

Parameters:
source - original TableModel.

setSort

public void setSort(int[] sortColumnIndexes,
                    boolean[] sortOrders)
             throws SortException
Sets sort regim.

Parameters:
sortColumnIndexes - indexes of sort columns.
sortOrders - orders of sorting.
Throws:
SortException

sort

public int[] sort()
Perform sorting,

Returns:
row indexes according to sort orders.

addIndexPair

protected void addIndexPair(Sorter.IndexPair pair)
Adds index pair to sort. (It's used for quick sort implementation).

Parameters:
pair - index pair.

compare

protected int compare(int startIndex,
                      int endIndex)
Compares two table's row.

Parameters:
startIndex - index of the first row.
endIndex - index of the second row.
Returns:
-1 less, 0 equal, 1 more

swap

protected void swap(int startIndex,
                    int endIndex)
Perform logical swap (swap of row indexes).

Parameters:
startIndex - index of the first row.
endIndex - index of the second row.

quickSort

protected void quickSort(int startIndex,
                         int endIndex)
Perform quick sort of part of table data.

Parameters:
startIndex - index of fragment's beginning.
endIndex - index of fragment's ending.

main

public static void main(java.lang.String[] args)

createModel

public static javax.swing.table.TableModel createModel()