Class 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 a TableColumnModel into a ComboBoxModel. 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  
      • Fields inherited from class javax.swing.AbstractListModel

        listenerList
    • 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 a TableColumn 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 a TableColumn object.
      • Methods inherited from class javax.swing.AbstractListModel

        addListDataListener, fireContentsChanged, fireIntervalAdded, fireIntervalRemoved, getListDataListeners, getListeners, removeListDataListener
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface javax.swing.ListModel

        addListDataListener, removeListDataListener
    • Field Detail

      • NO_COLUMN

        public static final uk.ac.starlink.table.gui.StarTableColumn NO_COLUMN
    • 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 model
        hasNone - 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 interface javax.swing.ListModel
      • getSize

        public int getSize()
        Specified by:
        getSize in interface javax.swing.ListModel
      • getSelectedItem

        public java.lang.Object getSelectedItem()
        The returned object is guaranteed to be a TableColumn or null.
        Specified by:
        getSelectedItem in interface javax.swing.ComboBoxModel
        Returns:
        the selected TableColumn
      • setSelectedItem

        public void setSelectedItem​(java.lang.Object item)
        The selected item must be a TableColumn object.
        Specified by:
        setSelectedItem in interface javax.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 interface javax.swing.event.TableColumnModelListener
      • columnRemoved

        public void columnRemoved​(javax.swing.event.TableColumnModelEvent evt)
        Specified by:
        columnRemoved in interface javax.swing.event.TableColumnModelListener
      • columnMoved

        public void columnMoved​(javax.swing.event.TableColumnModelEvent evt)
        Specified by:
        columnMoved in interface javax.swing.event.TableColumnModelListener
      • columnMarginChanged

        public void columnMarginChanged​(javax.swing.event.ChangeEvent evt)
        Specified by:
        columnMarginChanged in interface javax.swing.event.TableColumnModelListener
      • columnSelectionChanged

        public void columnSelectionChanged​(javax.swing.event.ListSelectionEvent evt)
        Specified by:
        columnSelectionChanged in interface javax.swing.event.TableColumnModelListener