Class GDynamicColumnTableModel<ROW_TYPE,​DATA_SOURCE>

    • Constructor Detail

      • GDynamicColumnTableModel

        public GDynamicColumnTableModel​(ServiceProvider serviceProvider)
    • Method Detail

      • isSortable

        public boolean isSortable​(int columnIndex)
        Description copied from interface: SortedTableModel
        Returns true if the specified columnIndex is sortable.
        Specified by:
        isSortable in interface SortedTableModel
        Parameters:
        columnIndex - the column index
        Returns:
        true if the specified columnIndex is sortable
      • loadDiscoveredTableColumns

        protected void loadDiscoveredTableColumns()
      • createSortComparator

        protected java.util.Comparator<ROW_TYPE> createSortComparator​(int columnIndex)
        Description copied from class: AbstractSortedTableModel
        An extension point for subclasses to insert their own comparator objects for their data. Subclasses can create comparators for a single or multiple columns, as desired.
        Overrides:
        createSortComparator in class AbstractSortedTableModel<ROW_TYPE>
        Parameters:
        columnIndex - the column index
        Returns:
        the comparator
      • createSortComparatorForColumn

        protected java.util.Comparator<java.lang.Object> createSortComparatorForColumn​(int columnIndex)
        This differs from createSortComparator(int) in that the other method creates a comparator that operates on a full row value, whereas this method operates on column values.
        Parameters:
        columnIndex - the column index
        Returns:
        a comparator for the specific column values
      • stateChanged

        public void stateChanged​(javax.swing.event.ChangeEvent e)
        Callback when column settings have changed
        Specified by:
        stateChanged in interface javax.swing.event.ChangeListener
      • addTableColumn

        protected void addTableColumn​(DynamicTableColumn<ROW_TYPE,​?,​?> column)
        Adds the given column at the end of the list of columns. This method is intended for implementations to add custom column objects, rather than relying on generic, discovered DynamicTableColumn implementations.

        Note: this method assumes that the columns have already been sorted

        Parameters:
        column - The field to add
      • addTableColumns

        protected void addTableColumns​(java.util.Set<DynamicTableColumn<ROW_TYPE,​?,​?>> columns)
        Adds the given columns to the end of the list of columns. This method is intended for implementations to add custom column objects, rather than relying on generic, discovered DynamicTableColumn implementations.

        Note: this method assumes that the columns have already been sorted.

        Parameters:
        columns - The columns to add
      • addTableColumn

        protected void addTableColumn​(DynamicTableColumn<ROW_TYPE,​?,​?> column,
                                      int index,
                                      boolean isDefault)
        Adds the given field at the given index to the list of fields in this class. This method is intended for implementations to add custom column objects, rather than relying on generic, discovered DynamicTableColumn implementations.

        Note: this method assumes that the columns have already been sorted.

        Parameters:
        column - The field to add.
        index - The index at which to add the field. If the index value is invalid (negative or greater than the number of columns), then the column will be added to the end of the columns list.
        isDefault - true if this is a default column
      • removeTableColumn

        protected void removeTableColumn​(DynamicTableColumn<ROW_TYPE,​?,​?> column)
        Removes the given column from this model
        Parameters:
        column - the column to remove
      • removeTableColumns

        protected void removeTableColumns​(java.util.Set<DynamicTableColumn<ROW_TYPE,​?,​?>> columns)
        Removes the given columns from this model. This method allows the client to remove multiple columns at once, firing only one event when the work is finished.
        Parameters:
        columns - the columns to remove
      • getDefaultColumnCount

        public int getDefaultColumnCount()
        Description copied from interface: VariableColumnTableModel
        Gets the count of the default columns for this model. This model may have non-default columns added. This method will return the count of columns that have been setup specifically by the table model. This method can be used to iterate of the first n columns of this model in order to get information for the default columns by calling methods like TableModel.getColumnName(int).
        Specified by:
        getDefaultColumnCount in interface VariableColumnTableModel
        Returns:
        Gets the count of the default columns for this model.
      • isVisibleByDefault

        public boolean isVisibleByDefault​(int modelIndex)
        Description copied from interface: VariableColumnTableModel
        Returns true if the column denoted by the given model index is specified by the table model as being visible when the table is loaded for the first time.
        Specified by:
        isVisibleByDefault in interface VariableColumnTableModel
        Parameters:
        modelIndex - The index in the column in the column model.
        Returns:
        true if the column denoted by the given model index is visible default.
      • isDefaultColumn

        public boolean isDefaultColumn​(int modelIndex)
        Returns true if the column indicated by the index in the model is a default column (meaning that it was specified by the model and not discovered).
        Specified by:
        isDefaultColumn in interface VariableColumnTableModel
        Parameters:
        modelIndex - the index of the column in the model.
        Returns:
        true if the column is a default.
      • getColumnCount

        public final int getColumnCount()
        Specified by:
        getColumnCount in interface javax.swing.table.TableModel
      • getColumnClass

        public final java.lang.Class<?> getColumnClass​(int column)
        Specified by:
        getColumnClass in interface javax.swing.table.TableModel
        Overrides:
        getColumnClass in class javax.swing.table.AbstractTableModel
      • getColumnName

        public final java.lang.String getColumnName​(int column)
        Specified by:
        getColumnName in interface javax.swing.table.TableModel
        Overrides:
        getColumnName in class javax.swing.table.AbstractTableModel
      • getUniqueIdentifier

        public java.lang.String getUniqueIdentifier​(int column)
        Description copied from interface: VariableColumnTableModel
        Returns a value that is unique for a given table column. This is different than getting the display name, which may be shared by different columns.
        Specified by:
        getUniqueIdentifier in interface VariableColumnTableModel
        Parameters:
        column - the index (in the model space) of the column for which to get the identifier
      • getColumnValueForRow

        public final java.lang.Object getColumnValueForRow​(ROW_TYPE t,
                                                           int columnIndex)
        Description copied from interface: RowObjectTableModel
        Implementors are expected to return a value at the given column index for the specified row object. This is essentially a more specific version of the TableModel.getValueAt(int, int) that allows this class's comparator objects to work.
        Specified by:
        getColumnValueForRow in interface RowObjectTableModel<ROW_TYPE>
        Parameters:
        t - The object that represents a given row.
        columnIndex - The column index for which a value is requested.
        Returns:
        a value at the given column index for the specified row object.
      • getDataSource

        public abstract DATA_SOURCE getDataSource()
        Returns the table's context for the data.
        Returns:
        the table's context for the data.
      • getColumnIndex

        public int getColumnIndex​(java.lang.Class<?> columnClass)
        Returns the column index of the given column class
        Parameters:
        columnClass - the class for the type of DynamicTableColumn you want to find.
        Returns:
        the column index for the specified DynamicTableColumn. -1 if not found.
      • setColumnSettings

        public void setColumnSettings​(int index,
                                      Settings newSettings)
        Description copied from interface: ConfigurableColumnTableModel
        A convenience method to set bulk column setting information for a group of columns at one time (this saves repeated rebuilding when settings are changing for multiple columns at once).
        Specified by:
        setColumnSettings in interface ConfigurableColumnTableModel
        Parameters:
        index - the column index
        newSettings - A list of pair objects that contain the column index of the column to which the new settings apply and the new settings object.
      • getRenderer

        public javax.swing.table.TableCellRenderer getRenderer​(int index)
        Gets the special table cell renderer for the specified table field column. A null value indicates that this field uses a default cell renderer.
        Specified by:
        getRenderer in interface ConfigurableColumnTableModel
        Parameters:
        index - the model column index
        Returns:
        a table cell renderer for this field. Otherwise, null if a default renderer should be used.
      • getMaxLines

        public int getMaxLines​(int index)
        Gets the maximum number of text display lines needed for any given cell within the specified column.
        Specified by:
        getMaxLines in interface ConfigurableColumnTableModel
        Parameters:
        index - column field index
        Returns:
        maximum number of lines needed for specified column