Package uk.ac.starlink.topcat
Class ColumnComboBoxModel
- java.lang.Object
-
- javax.swing.AbstractListModel
-
- uk.ac.starlink.topcat.ColumnComboBoxModel
-
- All Implemented Interfaces:
java.io.Serializable
,java.util.EventListener
,javax.swing.ComboBoxModel
,javax.swing.event.TableColumnModelListener
,javax.swing.ListModel
- Direct Known Subclasses:
RestrictedColumnComboBoxModel
public class ColumnComboBoxModel extends javax.swing.AbstractListModel implements javax.swing.event.TableColumnModelListener, javax.swing.ComboBoxModel
Adaptor class which turns aTableColumnModel
into aComboBoxModel
. This model is designed to reflect the contents of a column model rather than the other way around, so in general you wouldn't want to add a ListDataListener to this model, you'd add it to the underlying column model.Selections in the column model are not reflected by selections in this model, but columns added/moved/removed are.
- Author:
- Mark Taylor (Starlink)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static uk.ac.starlink.table.gui.StarTableColumn
NO_COLUMN
-
Constructor Summary
Constructors Constructor Description ColumnComboBoxModel(javax.swing.table.TableColumnModel colModel, boolean hasNone)
Constructs a new ComboBoxModel based on a given column model, optionally with a null entry at the head of the list.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
columnAdded(javax.swing.event.TableColumnModelEvent evt)
void
columnMarginChanged(javax.swing.event.ChangeEvent evt)
void
columnMoved(javax.swing.event.TableColumnModelEvent evt)
void
columnRemoved(javax.swing.event.TableColumnModelEvent evt)
void
columnSelectionChanged(javax.swing.event.ListSelectionEvent evt)
javax.swing.table.TableColumnModel
getColumnModel()
java.lang.Object
getElementAt(int index)
java.lang.Object
getSelectedItem()
The returned object is guaranteed to be aTableColumn
or null.int
getSize()
javax.swing.JComboBox
makeComboBox()
Returns a new JComboBox based on this model.void
setHasNone(boolean hasNone)
Sets whether there should be a null entry at the head of the list.void
setSelectedItem(java.lang.Object item)
The selected item must be aTableColumn
object.-
Methods inherited from class javax.swing.AbstractListModel
addListDataListener, fireContentsChanged, fireIntervalAdded, fireIntervalRemoved, getListDataListeners, getListeners, removeListDataListener
-
-
-
-
Constructor Detail
-
ColumnComboBoxModel
public ColumnComboBoxModel(javax.swing.table.TableColumnModel colModel, boolean hasNone)
Constructs a new ComboBoxModel based on a given column model, optionally with a null entry at the head of the list.- Parameters:
colModel
- the column modelhasNone
- true iff an additional null entry at the head of the list is required
-
-
Method Detail
-
setHasNone
public void setHasNone(boolean hasNone)
Sets whether there should be a null entry at the head of the list.- Parameters:
hasNone
- true iff an additional null entry at the head of the list is required
-
getColumnModel
public javax.swing.table.TableColumnModel getColumnModel()
-
getElementAt
public java.lang.Object getElementAt(int index)
- Specified by:
getElementAt
in interfacejavax.swing.ListModel
-
getSize
public int getSize()
- Specified by:
getSize
in interfacejavax.swing.ListModel
-
getSelectedItem
public java.lang.Object getSelectedItem()
The returned object is guaranteed to be aTableColumn
or null.- Specified by:
getSelectedItem
in interfacejavax.swing.ComboBoxModel
- Returns:
- the selected TableColumn
-
setSelectedItem
public void setSelectedItem(java.lang.Object item)
The selected item must be aTableColumn
object.- Specified by:
setSelectedItem
in interfacejavax.swing.ComboBoxModel
- Parameters:
item
- a table column to select- Throws:
java.lang.ClassCastException
- if item is not null or a TableColumn
-
makeComboBox
public javax.swing.JComboBox makeComboBox()
Returns a new JComboBox based on this model. This convenience method, as well as installing this model into a new JComboBox instance, also installs a suitable renderer for displaying the elements.- Returns:
- new combo box displaying this model
- See Also:
ColumnCellRenderer
-
columnAdded
public void columnAdded(javax.swing.event.TableColumnModelEvent evt)
- Specified by:
columnAdded
in interfacejavax.swing.event.TableColumnModelListener
-
columnRemoved
public void columnRemoved(javax.swing.event.TableColumnModelEvent evt)
- Specified by:
columnRemoved
in interfacejavax.swing.event.TableColumnModelListener
-
columnMoved
public void columnMoved(javax.swing.event.TableColumnModelEvent evt)
- Specified by:
columnMoved
in interfacejavax.swing.event.TableColumnModelListener
-
columnMarginChanged
public void columnMarginChanged(javax.swing.event.ChangeEvent evt)
- Specified by:
columnMarginChanged
in interfacejavax.swing.event.TableColumnModelListener
-
columnSelectionChanged
public void columnSelectionChanged(javax.swing.event.ListSelectionEvent evt)
- Specified by:
columnSelectionChanged
in interfacejavax.swing.event.TableColumnModelListener
-
-