Class EventTableColumnModel<T extends javax.swing.table.TableColumn>
- java.lang.Object
-
- ca.odell.glazedlists.swing.EventTableColumnModel<T>
-
- All Implemented Interfaces:
ListEventListener<T>
,java.beans.PropertyChangeListener
,java.util.EventListener
,javax.swing.event.ListSelectionListener
,javax.swing.table.TableColumnModel
public class EventTableColumnModel<T extends javax.swing.table.TableColumn> extends java.lang.Object implements javax.swing.table.TableColumnModel, java.beans.PropertyChangeListener, javax.swing.event.ListSelectionListener, ListEventListener<T>
ATableColumnModel
that holds anEventList
. Each element of the list corresponds to aTableColumn
in the model.The EventTableColumnModel class is not thread-safe. Unless otherwise noted, all methods are only safe to be called from the event dispatch thread. To do this programmatically, use
SwingUtilities.invokeAndWait(Runnable)
.- Author:
- James Lemieux
-
-
Field Summary
Fields Modifier and Type Field Description protected TransformedList<T,T>
swingThreadSource
the proxy moves events to the Swing Event Dispatch thread
-
Constructor Summary
Constructors Constructor Description EventTableColumnModel(EventList<T> source)
Creates a new model that contains theTableColumn
objects from the givensource
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addColumn(javax.swing.table.TableColumn column)
void
addColumnModelListener(javax.swing.event.TableColumnModelListener listener)
protected javax.swing.ListSelectionModel
createSelectionModel()
Creates a new default list selection model.void
dispose()
Releases the resources consumed by thisEventTableColumnModel
so that it may eventually be garbage collected.protected void
fireColumnAdded(javax.swing.event.TableColumnModelEvent e)
protected void
fireColumnMarginChanged()
protected void
fireColumnMoved(javax.swing.event.TableColumnModelEvent e)
protected void
fireColumnRemoved(javax.swing.event.TableColumnModelEvent e)
protected void
fireColumnSelectionChanged(javax.swing.event.ListSelectionEvent e)
javax.swing.table.TableColumn
getColumn(int columnIndex)
int
getColumnCount()
int
getColumnIndex(java.lang.Object identifier)
int
getColumnIndexAtX(int x)
int
getColumnMargin()
java.util.Enumeration<javax.swing.table.TableColumn>
getColumns()
boolean
getColumnSelectionAllowed()
int
getSelectedColumnCount()
int[]
getSelectedColumns()
javax.swing.ListSelectionModel
getSelectionModel()
int
getTotalColumnWidth()
void
listChanged(ListEvent<T> listChanges)
When the underlying list changes, this notification allows the object to repaint itself or update itself as necessary.void
moveColumn(int columnIndex, int newIndex)
void
propertyChange(java.beans.PropertyChangeEvent evt)
Watch for changes to the column width or preferred column width and trigger a relayout of the table header when they change.void
removeColumn(javax.swing.table.TableColumn column)
void
removeColumnModelListener(javax.swing.event.TableColumnModelListener listener)
void
setColumnMargin(int newMargin)
void
setColumnSelectionAllowed(boolean flag)
void
setSelectionModel(javax.swing.ListSelectionModel newModel)
void
valueChanged(javax.swing.event.ListSelectionEvent e)
-
-
-
Field Detail
-
swingThreadSource
protected TransformedList<T extends javax.swing.table.TableColumn,T extends javax.swing.table.TableColumn> swingThreadSource
the proxy moves events to the Swing Event Dispatch thread
-
-
Method Detail
-
addColumn
public void addColumn(javax.swing.table.TableColumn column)
- Specified by:
addColumn
in interfacejavax.swing.table.TableColumnModel
-
removeColumn
public void removeColumn(javax.swing.table.TableColumn column)
- Specified by:
removeColumn
in interfacejavax.swing.table.TableColumnModel
-
moveColumn
public void moveColumn(int columnIndex, int newIndex)
- Specified by:
moveColumn
in interfacejavax.swing.table.TableColumnModel
-
setColumnMargin
public void setColumnMargin(int newMargin)
- Specified by:
setColumnMargin
in interfacejavax.swing.table.TableColumnModel
-
getColumnMargin
public int getColumnMargin()
- Specified by:
getColumnMargin
in interfacejavax.swing.table.TableColumnModel
-
getColumnCount
public int getColumnCount()
- Specified by:
getColumnCount
in interfacejavax.swing.table.TableColumnModel
-
getColumns
public java.util.Enumeration<javax.swing.table.TableColumn> getColumns()
- Specified by:
getColumns
in interfacejavax.swing.table.TableColumnModel
-
getColumnIndex
public int getColumnIndex(java.lang.Object identifier)
- Specified by:
getColumnIndex
in interfacejavax.swing.table.TableColumnModel
-
getColumn
public javax.swing.table.TableColumn getColumn(int columnIndex)
- Specified by:
getColumn
in interfacejavax.swing.table.TableColumnModel
-
getColumnIndexAtX
public int getColumnIndexAtX(int x)
- Specified by:
getColumnIndexAtX
in interfacejavax.swing.table.TableColumnModel
-
getTotalColumnWidth
public int getTotalColumnWidth()
- Specified by:
getTotalColumnWidth
in interfacejavax.swing.table.TableColumnModel
-
setColumnSelectionAllowed
public void setColumnSelectionAllowed(boolean flag)
- Specified by:
setColumnSelectionAllowed
in interfacejavax.swing.table.TableColumnModel
-
getColumnSelectionAllowed
public boolean getColumnSelectionAllowed()
- Specified by:
getColumnSelectionAllowed
in interfacejavax.swing.table.TableColumnModel
-
getSelectedColumns
public int[] getSelectedColumns()
- Specified by:
getSelectedColumns
in interfacejavax.swing.table.TableColumnModel
-
getSelectedColumnCount
public int getSelectedColumnCount()
- Specified by:
getSelectedColumnCount
in interfacejavax.swing.table.TableColumnModel
-
setSelectionModel
public void setSelectionModel(javax.swing.ListSelectionModel newModel)
- Specified by:
setSelectionModel
in interfacejavax.swing.table.TableColumnModel
-
getSelectionModel
public javax.swing.ListSelectionModel getSelectionModel()
- Specified by:
getSelectionModel
in interfacejavax.swing.table.TableColumnModel
-
addColumnModelListener
public void addColumnModelListener(javax.swing.event.TableColumnModelListener listener)
- Specified by:
addColumnModelListener
in interfacejavax.swing.table.TableColumnModel
-
removeColumnModelListener
public void removeColumnModelListener(javax.swing.event.TableColumnModelListener listener)
- Specified by:
removeColumnModelListener
in interfacejavax.swing.table.TableColumnModel
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent evt)
Watch for changes to the column width or preferred column width and trigger a relayout of the table header when they change.- Specified by:
propertyChange
in interfacejava.beans.PropertyChangeListener
-
valueChanged
public void valueChanged(javax.swing.event.ListSelectionEvent e)
- Specified by:
valueChanged
in interfacejavax.swing.event.ListSelectionListener
-
listChanged
public void listChanged(ListEvent<T> listChanges)
Description copied from interface:ListEventListener
When the underlying list changes, this notification allows the object to repaint itself or update itself as necessary.It is mandatory that the calling thread has obtained the write lock on the source list. This is because the calling thread will have written to the source list to cause this event. This condition guarantees that no writes can occur while the listener is handling this event. It is an error to write to the source list while processing an event.
- Specified by:
listChanged
in interfaceListEventListener<T extends javax.swing.table.TableColumn>
- Parameters:
listChanges
- aListEvent
describing the changes to the list
-
dispose
public void dispose()
Releases the resources consumed by thisEventTableColumnModel
so that it may eventually be garbage collected.An
EventTableColumnModel
will be garbage collected without a call todispose()
, but not before its sourceEventList
is garbage collected. By callingdispose()
, you allow theEventTableColumnModel
to be garbage collected before its sourceEventList
. This is necessary for situations where anEventTableColumnModel
is short-lived but its sourceEventList
is long-lived.Warning: It is an error to call any method on an
EventTableColumnModel
after it has been disposed.
-
createSelectionModel
protected javax.swing.ListSelectionModel createSelectionModel()
Creates a new default list selection model.
-
fireColumnAdded
protected void fireColumnAdded(javax.swing.event.TableColumnModelEvent e)
-
fireColumnRemoved
protected void fireColumnRemoved(javax.swing.event.TableColumnModelEvent e)
-
fireColumnMoved
protected void fireColumnMoved(javax.swing.event.TableColumnModelEvent e)
-
fireColumnSelectionChanged
protected void fireColumnSelectionChanged(javax.swing.event.ListSelectionEvent e)
-
fireColumnMarginChanged
protected void fireColumnMarginChanged()
-
-