org.objectweb.cjdbc.console.views
Class InfoTableSorter

java.lang.Object
  extended byjavax.swing.table.AbstractTableModel
      extended byorg.objectweb.cjdbc.console.views.InfoTableSorter
All Implemented Interfaces:
java.util.EventListener, java.io.Serializable, javax.swing.table.TableModel, javax.swing.event.TableModelListener

public class InfoTableSorter
extends javax.swing.table.AbstractTableModel
implements javax.swing.event.TableModelListener

This code is inspired from the Swing tutorial demo version 1.5 12/17/97 from Philip Milne. It sorts the table when you click on a header.

Version:
1.0
Author:
Philip Milne, Emmanuel Cecchet
See Also:
Serialized Form

Field Summary
private  boolean ascending
           
private  int compares
           
private  int[] indexes
           
private  javax.swing.table.TableModel model
           
private  java.util.Vector sortingColumns
           
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
InfoTableSorter(javax.swing.table.TableModel model)
          Constructor
 
Method Summary
 void addMouseListenerToHeaderInTable(javax.swing.JTable table)
          Add a mouse listener to the Table to trigger a table sort when a column heading is clicked in the JTable.
private  int compare(int row1, int row2)
           
private  int compareRowsByColumn(int row1, int row2, int column)
           
 java.lang.Class getColumnClass(int aColumn)
           
 int getColumnCount()
           
 java.lang.String getColumnName(int aColumn)
           
 int getRowCount()
           
 java.lang.Object getValueAt(int aRow, int aColumn)
           
private  void reallocateIndexes()
           
private  void setModel(javax.swing.table.TableModel model)
           
 void setValueAt(java.lang.Object aValue, int aRow, int aColumn)
           
private  void sortByColumn(int column, boolean ascending)
           
private  void swap(int i, int j)
           
 void tableChanged(javax.swing.event.TableModelEvent e)
           
 
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

model

private javax.swing.table.TableModel model

indexes

private int[] indexes

sortingColumns

private java.util.Vector sortingColumns

ascending

private boolean ascending

compares

private int compares
Constructor Detail

InfoTableSorter

public InfoTableSorter(javax.swing.table.TableModel model)
Constructor

Parameters:
model - TableModel to use
Method Detail

setModel

private void setModel(javax.swing.table.TableModel model)

getRowCount

public int getRowCount()
Specified by:
getRowCount in interface javax.swing.table.TableModel
See Also:
TableModel.getRowCount()

getColumnCount

public int getColumnCount()
Specified by:
getColumnCount in interface javax.swing.table.TableModel
See Also:
TableModel.getColumnCount()

getColumnName

public java.lang.String getColumnName(int aColumn)
Specified by:
getColumnName in interface javax.swing.table.TableModel
See Also:
TableModel.getColumnName(int)

getColumnClass

public java.lang.Class getColumnClass(int aColumn)
Specified by:
getColumnClass in interface javax.swing.table.TableModel
See Also:
TableModel.getColumnClass(int)

tableChanged

public void tableChanged(javax.swing.event.TableModelEvent e)
Specified by:
tableChanged in interface javax.swing.event.TableModelListener
See Also:
TableModelListener.tableChanged(javax.swing.event.TableModelEvent)

getValueAt

public java.lang.Object getValueAt(int aRow,
                                   int aColumn)
Specified by:
getValueAt in interface javax.swing.table.TableModel
See Also:
TableModel.getValueAt(int, int)

setValueAt

public void setValueAt(java.lang.Object aValue,
                       int aRow,
                       int aColumn)
Specified by:
setValueAt in interface javax.swing.table.TableModel
See Also:
TableModel.setValueAt(java.lang.Object, int, int)

addMouseListenerToHeaderInTable

public void addMouseListenerToHeaderInTable(javax.swing.JTable table)
Add a mouse listener to the Table to trigger a table sort when a column heading is clicked in the JTable.

Parameters:
table - the JTable to sort

sortByColumn

private void sortByColumn(int column,
                          boolean ascending)

compareRowsByColumn

private int compareRowsByColumn(int row1,
                                int row2,
                                int column)

compare

private int compare(int row1,
                    int row2)

reallocateIndexes

private void reallocateIndexes()

swap

private void swap(int i,
                  int j)


Copyright © 2002, 2005 - ObjectWeb Consortium - All Rights Reserved.