|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.swing.table.AbstractTableModel
edu.cmu.cs.sb.core.TableSorter
public class TableSorter
This class is a modifed version of the Java TableSorter class http://java.sun.com/docs/books/tutorial/uiswing/examples/components/TableSorterDemoProject/src/components/TableSorter.java Copyright for this sample code ============================================================== Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of Sun Microsystems nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ============================================== The string comparisons are modified here. TableSorter is a decorator for TableModels; adding sorting functionality to a supplied TableModel. TableSorter does not store or copy the data in its TableModel; instead it maintains a map from the row indexes of the view to the row indexes of the model. As requests are made of the sorter (like getValueAt(row, col)) they are passed to the underlying model after the row numbers have been translated via the internal mapping array. This way, the TableSorter appears to hold another copy of the table with the rows in a different order.
TableSorter registers itself as a listener to the underlying model, just as the JTable itself would. Events recieved from the model are examined, sometimes manipulated (typically widened), and then passed on to the TableSorter's listeners (typically the JTable). If a change to the model has invalidated the order of TableSorter's rows, a note of this is made and the sorter will resort the rows the next time a value is requested. When the tableHeader property is set, either by using the setTableHeader() method or the two argument constructor, the table header may be used as a complete UI for TableSorter. The default renderer of the tableHeader is decorated with a renderer that indicates the sorting status of each column. In addition, a mouse listener is installed with the following behavior:
Nested Class Summary | |
---|---|
protected class |
TableSorter.MouseHandler
|
protected class |
TableSorter.TableModelHandler
|
Field Summary | |
---|---|
static int |
ASCENDING
|
protected java.util.Map |
columnComparators
|
static int |
DESCENDING
|
protected static edu.cmu.cs.sb.core.TableSorter.Directive |
EMPTY_DIRECTIVE
|
static java.util.Comparator |
LEXICAL_COMPARATOR
Used to compare two table entries |
protected java.awt.event.MouseListener |
mouseListener
|
static int |
NOT_SORTED
|
protected javax.swing.table.TableModel |
tableModel
|
protected javax.swing.event.TableModelListener |
tableModelListener
|
Fields inherited from class javax.swing.table.AbstractTableModel |
---|
listenerList |
Constructor Summary | |
---|---|
TableSorter()
Empty class constructor |
|
TableSorter(javax.swing.table.TableModel tableModel)
Class constructor with a table model |
|
TableSorter(javax.swing.table.TableModel tableModel,
javax.swing.table.JTableHeader tableHeader)
Class constructor with a table model and table header |
Method Summary | |
---|---|
java.lang.Class |
getColumnClass(int column)
|
int |
getColumnCount()
|
java.lang.String |
getColumnName(int column)
|
protected java.util.Comparator |
getComparator(int column)
|
javax.swing.Icon |
getHeaderRendererIcon(int column,
int size)
|
int |
getRowCount()
|
int |
getSortingStatus(int column)
|
javax.swing.table.JTableHeader |
getTableHeader()
Returns the tableHeader |
javax.swing.table.TableModel |
getTableModel()
Returns the tableModel |
java.lang.Object |
getValueAt(int row,
int column)
|
boolean |
isCellEditable(int row,
int column)
|
boolean |
isSorting()
Returns true iff the sortingColumns size is not 0 |
int |
modelIndex(int viewIndex)
|
void |
setColumnComparator(java.lang.Class type,
java.util.Comparator comparator)
|
void |
setSortingStatus(int column,
int status)
|
void |
setTableHeader(javax.swing.table.JTableHeader tableHeader)
|
void |
setTableModel(javax.swing.table.TableModel tableModel)
Adds a tableModelListener, clears sorting status, calss fireTableStructureChanged |
void |
setValueAt(java.lang.Object aValue,
int row,
int column)
|
Methods inherited from class javax.swing.table.AbstractTableModel |
---|
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners, removeTableModelListener |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected javax.swing.table.TableModel tableModel
public static final int DESCENDING
public static final int NOT_SORTED
public static final int ASCENDING
protected static final edu.cmu.cs.sb.core.TableSorter.Directive EMPTY_DIRECTIVE
protected java.awt.event.MouseListener mouseListener
protected javax.swing.event.TableModelListener tableModelListener
protected java.util.Map columnComparators
public static final java.util.Comparator LEXICAL_COMPARATOR
Constructor Detail |
---|
public TableSorter()
public TableSorter(javax.swing.table.TableModel tableModel)
public TableSorter(javax.swing.table.TableModel tableModel, javax.swing.table.JTableHeader tableHeader)
Method Detail |
---|
public javax.swing.table.TableModel getTableModel()
public void setTableModel(javax.swing.table.TableModel tableModel)
public javax.swing.table.JTableHeader getTableHeader()
public void setTableHeader(javax.swing.table.JTableHeader tableHeader)
public boolean isSorting()
public int getSortingStatus(int column)
public void setSortingStatus(int column, int status)
public javax.swing.Icon getHeaderRendererIcon(int column, int size)
public void setColumnComparator(java.lang.Class type, java.util.Comparator comparator)
protected java.util.Comparator getComparator(int column)
public int modelIndex(int viewIndex)
public int getRowCount()
public int getColumnCount()
public java.lang.String getColumnName(int column)
getColumnName
in interface javax.swing.table.TableModel
getColumnName
in class javax.swing.table.AbstractTableModel
public java.lang.Class getColumnClass(int column)
getColumnClass
in interface javax.swing.table.TableModel
getColumnClass
in class javax.swing.table.AbstractTableModel
public boolean isCellEditable(int row, int column)
isCellEditable
in interface javax.swing.table.TableModel
isCellEditable
in class javax.swing.table.AbstractTableModel
public java.lang.Object getValueAt(int row, int column)
public void setValueAt(java.lang.Object aValue, int row, int column)
setValueAt
in interface javax.swing.table.TableModel
setValueAt
in class javax.swing.table.AbstractTableModel
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |