sdp.gui.main
Class TableSorter

java.lang.Object
  |
  +--javax.swing.table.AbstractTableModel
        |
        +--sdp.gui.main.TableMap
              |
              +--sdp.gui.main.TableSorter

public class TableSorter
extends TableMap

Die Klasse TableSorter erweitert die Klasse TableMap. Sie implementiert den Sortieralgorithmus, der auf der Tabelle, die im MailTablePanel implementiert ist, ausgeführt wird.

Version:
$Revision: 1.8 $, $Date: 2001/07/17 18:46:12 $
Author:
Sebastian Lempert
See Also:
MailTablePanel, TableMap, Serialized Form

Field Summary
protected  boolean ascending
           
protected  int compares
           
protected  int[] indexes
           
protected static org.apache.log4j.Category quak
           
protected  java.util.Vector sortingColumns
           
 
Fields inherited from class sdp.gui.main.TableMap
model, quak
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
TableSorter()
          Erzeugt ein Objekt der Klasse TableSorter.
TableSorter(javax.swing.table.TableModel model)
          Erzeugt ein Objekt der Klasse TableSorter und stellt die Tabelle, die die Mails darstellt, durch das übergebene TableModel dar.
 
Method Summary
 void addMouseListenerToHeaderInTable(javax.swing.JTable table)
          Fügt der Tabelle, die die Mails darstellt einen Listener hinzu.
 void checkModel()
          Prüft, ob während des Sortiervorganges das Datenmodell geändert wurde und gibt gegebenenfalls eine Fehlermeldung aus.
 int compare(int row1, int row2)
          Intern verwendete Methode des Sortieralgorithmus.
 int compareRowsByColumn(int row1, int row2, int column)
          Vergleicht zwei Zeilen einer Spalte anhand des in der Tabellenspalte verwendeten Typs miteinander.
 int convertViewRowToModelRow(int row)
          Übersetzt die Position einer Zeile innerhalb der Tabelle in die tatsächliche Position einer Zeile im Datenmodell.
 java.lang.Object getValueAt(int aRow, int aColumn)
          Gibt den Eintrag in der übergeben Zeile und Spalte der Tabelle, die die Mails darstellt, zurück.
 void reallocateIndexes()
          Die Indizes des Tabellenmodells neu zuweisen.
 void setModel(javax.swing.table.TableModel model)
          Setzt das TableModel der Tabelle, die die Mails eines Kontos darstellt.
 void setValueAt(java.lang.Object aValue, int aRow, int aColumn)
          Fügt ein Objekt in die angegebenen Zeile und Spalte der Tabelle, die die Mails darstellt, ein.
 void shuttlesort(int[] from, int[] to, int low, int high)
          Der eigentliche Sortieralgorithmus, der auf der Tabelle, die die Mails darstellt, stattfindet.
 void sort(java.lang.Object sender)
          Ruft den Sortieralgorithmus auf.
 void sortByColumn(int column)
          Sortiert die Tabelle, die die Mails darstellt, anhand der übergeben Spaltennummer.
 void sortByColumn(int column, boolean ascending)
          Auf- oder Absteigende Sortierung der Tabelle, die die Mails darstellt, anhand der übergeben Spaltennummer.
 void tableChanged(javax.swing.event.TableModelEvent e)
          Informiert alle Listener, die auf die die Mails darstellende Tabelle gesetzt sind, von einer Änderung der Tabelle.
 
Methods inherited from class sdp.gui.main.TableMap
getColumnClass, getColumnCount, getColumnName, getModel, getRowCount, isCellEditable
 
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, removeTableModelListener
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

quak

protected static org.apache.log4j.Category quak

indexes

protected int[] indexes

sortingColumns

protected java.util.Vector sortingColumns

ascending

protected boolean ascending

compares

protected int compares
Constructor Detail

TableSorter

public TableSorter()
Erzeugt ein Objekt der Klasse TableSorter.
See Also:
TableMap

TableSorter

public TableSorter(javax.swing.table.TableModel model)
Erzeugt ein Objekt der Klasse TableSorter und stellt die Tabelle, die die Mails darstellt, durch das übergebene TableModel dar.
Parameters:
model - Das TableModel, welches aktuell verwendet wird.
See Also:
MailTablePanel
Method Detail

setModel

public void setModel(javax.swing.table.TableModel model)
Setzt das TableModel der Tabelle, die die Mails eines Kontos darstellt.
Overrides:
setModel in class TableMap
Parameters:
model - Das TableModel, welches aktuell verwendet wird.
See Also:
MailTablePanel

compareRowsByColumn

public int compareRowsByColumn(int row1,
                               int row2,
                               int column)
Vergleicht zwei Zeilen einer Spalte anhand des in der Tabellenspalte verwendeten Typs miteinander.
Parameters:
row1 - Index der ersten zu vergleichenden Spalte.
row2 - Index der zweiten zu vergleichenden Spalte.
column - Index der Spalte, in der der Vergleich stattfinden soll.
Returns:
int 0 wenn row1 = row2, -1 wenn row1 < row2, 1 wenn row1 > row2

compare

public int compare(int row1,
                   int row2)
Intern verwendete Methode des Sortieralgorithmus.
Parameters:
row1 - Zeilenindex int
row2 - Zeilenindex int
Returns:
int

reallocateIndexes

public void reallocateIndexes()
Die Indizes des Tabellenmodells neu zuweisen.

tableChanged

public void tableChanged(javax.swing.event.TableModelEvent e)
Informiert alle Listener, die auf die die Mails darstellende Tabelle gesetzt sind, von einer Änderung der Tabelle.
Overrides:
tableChanged in class TableMap
Parameters:
e - Das den Sortieralgorithmus auslösende TableModelEvent
See Also:
MailTablePanel

checkModel

public void checkModel()
Prüft, ob während des Sortiervorganges das Datenmodell geändert wurde und gibt gegebenenfalls eine Fehlermeldung aus.

sort

public void sort(java.lang.Object sender)
Ruft den Sortieralgorithmus auf.
Parameters:
sender -  

shuttlesort

public void shuttlesort(int[] from,
                        int[] to,
                        int low,
                        int high)
Der eigentliche Sortieralgorithmus, der auf der Tabelle, die die Mails darstellt, stattfindet.
Parameters:
from -  
to -  
low -  
high -  
See Also:
MailTablePanel

getValueAt

public java.lang.Object getValueAt(int aRow,
                                   int aColumn)
Gibt den Eintrag in der übergeben Zeile und Spalte der Tabelle, die die Mails darstellt, zurück.
Overrides:
getValueAt in class TableMap
Parameters:
aRow - Der Index der zu befragenden Spalte.
aColumn - Der Index der zu befragenden Zeile.
Returns:
Object Das Object an der Stelle aRow, aColumn
See Also:
MailTablePanel

setValueAt

public void setValueAt(java.lang.Object aValue,
                       int aRow,
                       int aColumn)
Fügt ein Objekt in die angegebenen Zeile und Spalte der Tabelle, die die Mails darstellt, ein.
Overrides:
setValueAt in class TableMap
Parameters:
aValue - Das zu speichernde Object.
aRow - Der Index der Zeile, in der gespeichert werden soll.
aColumn - Der Index der Spalte, in der gespeichert werden soll.
See Also:
MailTablePanel

sortByColumn

public void sortByColumn(int column)
Sortiert die Tabelle, die die Mails darstellt, anhand der übergeben Spaltennummer.
Parameters:
column - Index der Spalte, anhand welcher die Tabelle sortiert werden soll.
See Also:
MailTablePanel

sortByColumn

public void sortByColumn(int column,
                         boolean ascending)
Auf- oder Absteigende Sortierung der Tabelle, die die Mails darstellt, anhand der übergeben Spaltennummer.
Parameters:
column - Index der Spalte, anhand welcher die Tabelle sortiert werden soll.
ascending - sortiert aufsteigend, wenn ascending == true, absteigend sonst.
See Also:
MailTablePanel

addMouseListenerToHeaderInTable

public void addMouseListenerToHeaderInTable(javax.swing.JTable table)
Fügt der Tabelle, die die Mails darstellt einen Listener hinzu. Dieser löst durch einen Mausklick auf den TableHeader den Sortiervorgang aus.
Parameters:
table - Der JTable, dem ein Listener im TableHeader hinzugefügt werden soll.
See Also:
MailTablePanel

convertViewRowToModelRow

public int convertViewRowToModelRow(int row)
Übersetzt die Position einer Zeile innerhalb der Tabelle in die tatsächliche Position einer Zeile im Datenmodell.
Parameters:
Zeilenindex - int
Returns:
int