Class RestrictedColumnComboBoxModel

  • All Implemented Interfaces:
    java.io.Serializable, java.util.EventListener, javax.swing.ComboBoxModel, javax.swing.event.TableColumnModelListener, javax.swing.ListModel

    public abstract class RestrictedColumnComboBoxModel
    extends ColumnComboBoxModel
    Does a similar job as for ColumnComboBoxModel, but when only a subset of the available columns should show up in the combobox. Use it in the same way as ColumnComboBoxModel, but implement the acceptColumn(uk.ac.starlink.table.ColumnInfo) method appropriately. In the case that acceptColumn accepts everything, this will behave just the same as a ColumnComboBoxModel (though perhaps less efficiently).
    See Also:
    Serialized Form
    • Constructor Detail

      • RestrictedColumnComboBoxModel

        public RestrictedColumnComboBoxModel​(javax.swing.table.TableColumnModel colModel,
                                             boolean hasNone)
    • Method Detail

      • acceptColumn

        public abstract boolean acceptColumn​(uk.ac.starlink.table.ColumnInfo cinfo)
        Determines whether a column with given metadata in the column model should show up in the combobox.
        Parameters:
        cinfo - column metadata to assess
        Returns:
        true iff the column is to be used
      • getElementAt

        public java.lang.Object getElementAt​(int index)
        Specified by:
        getElementAt in interface javax.swing.ListModel
        Overrides:
        getElementAt in class ColumnComboBoxModel
      • getSize

        public int getSize()
        Specified by:
        getSize in interface javax.swing.ListModel
        Overrides:
        getSize in class ColumnComboBoxModel
      • columnAdded

        public void columnAdded​(javax.swing.event.TableColumnModelEvent evt)
        Specified by:
        columnAdded in interface javax.swing.event.TableColumnModelListener
        Overrides:
        columnAdded in class ColumnComboBoxModel
      • columnRemoved

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

        public void columnMoved​(javax.swing.event.TableColumnModelEvent evt)
        Specified by:
        columnMoved in interface javax.swing.event.TableColumnModelListener
        Overrides:
        columnMoved in class ColumnComboBoxModel
      • makeClassColumnComboBoxModel

        public static RestrictedColumnComboBoxModel makeClassColumnComboBoxModel​(javax.swing.table.TableColumnModel colModel,
                                                                                 boolean hasNone,
                                                                                 java.lang.Class<?> clazz)
        Returns a column combo box model which checks for compatibility with a given class. Class matching is not strict in the following sense: any numeric class (Number) is considered assignable to any other numeric class.
        Parameters:
        colModel - the column model
        hasNone - true if you want a NO_COLUMN entry
        clazz - the class that available columns have to have data assignable to