Package org.astrogrid.samp.gui
Class TransmissionTableModel
- java.lang.Object
-
- org.astrogrid.samp.gui.TransmissionTableModel
-
- All Implemented Interfaces:
javax.swing.table.TableModel
class TransmissionTableModel extends java.lang.Object implements javax.swing.table.TableModel
TableModel implementation which displays Transmission objects.- Since:
- 5 Dec 2008
- Author:
- Mark Taylor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
TransmissionTableModel.Column
Describes metadata and data for a table column.private static class
TransmissionTableModel.CustomTableCellRenderer
Template custom TableCellRenderer for subclassing.
-
Field Summary
Fields Modifier and Type Field Description private javax.swing.event.ChangeListener
changeListener_
private static javax.swing.table.TableCellRenderer
CLIENT_RENDERER
Cell renderer for Client objects.private TransmissionTableModel.Column[]
columns_
private int
maxRows_
private int
removeDelay_
static javax.swing.table.TableCellRenderer
STATUS_RENDERER
Cell renderer for Transmission.Status objects.private java.util.List
tableListenerList_
private java.util.List
transList_
-
Constructor Summary
Constructors Constructor Description TransmissionTableModel(boolean showSender, boolean showReceiver, int removeDelay, int maxRows)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTableModelListener(javax.swing.event.TableModelListener listener)
void
addTransmission(Transmission trans)
Adds a transmission (row) to this model.private static javax.swing.table.TableCellRenderer
createClientCellRenderer()
Returns a cell renderer for Client objects.private static javax.swing.table.TableCellRenderer
createStatusCellRenderer()
Returns a cell renderer for Transmission.Status objects.private void
fireTableChanged(javax.swing.event.TableModelEvent evt)
Passes a table event to all registered listeners.java.lang.Class
getColumnClass(int icol)
int
getColumnCount()
java.lang.String
getColumnName(int icol)
int
getRowCount()
javax.swing.table.TableColumn
getTableColumn(int icol)
Returns a TableColumn suitable for a given column of this table.Transmission
getTransmission(int irow)
Returns the transmission corresponding to a given table row.java.lang.Object
getValueAt(int irow, int icol)
boolean
isCellEditable(int irow, int icol)
void
removeTableModelListener(javax.swing.event.TableModelListener listener)
void
removeTransmission(Transmission trans)
Removes a transmission from this model.void
setValueAt(java.lang.Object value, int irow, int icol)
private void
transmissionChanged(Transmission trans)
Called whenever a transmission which is in this list has changed state.
-
-
-
Field Detail
-
transList_
private final java.util.List transList_
-
tableListenerList_
private final java.util.List tableListenerList_
-
changeListener_
private final javax.swing.event.ChangeListener changeListener_
-
columns_
private final TransmissionTableModel.Column[] columns_
-
maxRows_
private int maxRows_
-
removeDelay_
private int removeDelay_
-
STATUS_RENDERER
public static final javax.swing.table.TableCellRenderer STATUS_RENDERER
Cell renderer for Transmission.Status objects.
-
CLIENT_RENDERER
private static final javax.swing.table.TableCellRenderer CLIENT_RENDERER
Cell renderer for Client objects.
-
-
Constructor Detail
-
TransmissionTableModel
public TransmissionTableModel(boolean showSender, boolean showReceiver, int removeDelay, int maxRows)
Constructor.- Parameters:
showSender
- true if a Sender column is requiredshowReceiver
- true if a Receiver column is requiredremoveDelay
- time in milliseconds after transmission resolution that it will stay in the table - after this it will be removed automaticallymaxRows
- maximum row count for table - if not set to a finite value, Swing can get overloaded in very high message traffic
-
-
Method Detail
-
getTransmission
public Transmission getTransmission(int irow)
Returns the transmission corresponding to a given table row.- Parameters:
irow
- row indextransmission
- displayed in row irow
-
addTransmission
public void addTransmission(Transmission trans)
Adds a transmission (row) to this model. It will appear at the top.- Parameters:
trans
- transmission to add
-
removeTransmission
public void removeTransmission(Transmission trans)
Removes a transmission from this model.- Parameters:
trans
- transmission to remove
-
getColumnCount
public int getColumnCount()
- Specified by:
getColumnCount
in interfacejavax.swing.table.TableModel
-
getRowCount
public int getRowCount()
- Specified by:
getRowCount
in interfacejavax.swing.table.TableModel
-
getValueAt
public java.lang.Object getValueAt(int irow, int icol)
- Specified by:
getValueAt
in interfacejavax.swing.table.TableModel
-
getColumnName
public java.lang.String getColumnName(int icol)
- Specified by:
getColumnName
in interfacejavax.swing.table.TableModel
-
getColumnClass
public java.lang.Class getColumnClass(int icol)
- Specified by:
getColumnClass
in interfacejavax.swing.table.TableModel
-
isCellEditable
public boolean isCellEditable(int irow, int icol)
- Specified by:
isCellEditable
in interfacejavax.swing.table.TableModel
-
setValueAt
public void setValueAt(java.lang.Object value, int irow, int icol)
- Specified by:
setValueAt
in interfacejavax.swing.table.TableModel
-
addTableModelListener
public void addTableModelListener(javax.swing.event.TableModelListener listener)
- Specified by:
addTableModelListener
in interfacejavax.swing.table.TableModel
-
removeTableModelListener
public void removeTableModelListener(javax.swing.event.TableModelListener listener)
- Specified by:
removeTableModelListener
in interfacejavax.swing.table.TableModel
-
getTableColumn
public javax.swing.table.TableColumn getTableColumn(int icol)
Returns a TableColumn suitable for a given column of this table. Can be used for more customised presentation.- Parameters:
icol
- column index- Returns:
- table column
-
transmissionChanged
private void transmissionChanged(Transmission trans)
Called whenever a transmission which is in this list has changed state.- Parameters:
trans
- transmission
-
fireTableChanged
private void fireTableChanged(javax.swing.event.TableModelEvent evt)
Passes a table event to all registered listeners.- Parameters:
evt
- event to forward
-
createStatusCellRenderer
private static javax.swing.table.TableCellRenderer createStatusCellRenderer()
Returns a cell renderer for Transmission.Status objects.- Returns:
- table cell renderer
-
createClientCellRenderer
private static javax.swing.table.TableCellRenderer createClientCellRenderer()
Returns a cell renderer for Client objects.- Returns:
- table cell renderer
-
-