Package docking.widgets.table

# Interface DynamicTableColumn<ROW_TYPE,COLUMN_TYPE,DATA_SOURCE>

Type Parameters:
  `ROW_TYPE` - The row object class supported by this column
  `COLUMN_TYPE` - The column object class supported by this column
  `DATA_SOURCE` - The object class type that will be passed to see `getValue(ROW_TYPE, Settings, DATA_SOURCE, ServiceProvider)`

All Known Subinterfaces:
  `EnumeratedColumnTableModel.EditableDynamicTableColumn<ROW_TYPE,COLUMN_TYPE,DATA_SOURCE>`, `ProgramBasedDynamicTableColumn<ROW_TYPE,COLUMN_TYPE>`, `ProgramLocationTableColumn<ROW_TYPE,COLUMN_TYPE>`

All Known Implementing Classes:
  `AbstractDynamicTableColumn`, `AbstractDynamicTableColumnStub`, `AbstractProgramBasedDynamicTableColumn`, `AbstractProgramLocationTableColumn`, `AbstractReferenceBytesTableColumn`, `AbstractReferencePreviewTableColumn`, `AddressSizeProjectDataColumn`, `AddressTableColumn`, `AddressTableDataTableColumn`, `AddressTableLengthTableColumn`, `BinaryColumnAdapter`, `BooleanColumnAdapter`, `ByteColumnAdapter`, `ByteCountProgramLocationBasedTableColumn`, `BytesTableColumn`, `CodeUnitTableColumn`, `ColumnDisplayDynamicTableColumnAdapter`, `CompilerProjectDataColumn`, `CreatedWithProjectDataColumn`, `CreationDateProjectDataColumn`, `DomainFileSizeProjectDataColumn`, `DynamicTableColumnExtensionPoint`, `EndianProjectDataColumn`, `EOLCommentTableColumn`, `ExecutablePathProjectDataColumn`, `FormatProjectDataColumn`, `FunctionBodySizeTableColumn`, `FunctionCallingConventionTableColumn`, `FunctionLocalStackSizeColumn`, `FunctionNameTableColumn`, `FunctionParameterCountTableColumn`, `FunctionParameterStackSizeColumn`, `FunctionPurgeTableColumn`, `FunctionSignatureTableColumn`, `FunctionTagTableColumn`, `IntegerColumnAdapter`, `IsFunctionCustomStorageTableColumn`, `IsFunctionInlineTableColumn`, `IsFunctionNonReturningTableColumn`, `IsFunctionVarargsTableColumn`, `LabelTableColumn`, `LanguageProjectDataColumn`, `LongColumnAdapter`, `MappedProgramLocationTableColumn`, `MappedTableColumn`, `Md5ProjectDataColumn`, `MemoryMatchTableModel.MatchBytesColumn`, `MemoryMatchTableModel.MatchValueColumn`, `MemorySectionProgramLocationBasedTableColumn`, `MemoryTypeProgramLocationBasedTableColumn`, `NamespaceTableColumn`, `OffcutReferenceCountToAddressTableColumn`, `PreviewTableColumn`, `ProcessorProjectDataColumn`, `ProgramBasedDynamicTableColumnExtensionPoint`, `ProgramLocationTableColumnExtensionPoint`, `ProgramMappedTableColumn`, `ProjectDataColumn`, `ReferenceCountToAddressTableColumn`, `ReferenceFromAddressTableColumn`, `ReferenceFromBytesTableColumn`, `ReferenceFromFunctionTableColumn`, `ReferenceFromLabelTableColumn`, `ReferenceFromPreviewTableColumn`, `ReferenceToAddressTableColumn`, `ReferenceToBytesTableColumn`, `ReferenceToPreviewTableColumn`, `ReferenceTypeTableColumn`, `ShortColumnAdapter`, `SourceTypeTableColumn`, `StringColumnAdapter`, `SymbolTypeTableColumn`

public interface DynamicTableColumn<ROW_TYPE,COLUMN_TYPE,DATA_SOURCE>
The root interface for defining columns for `DynamicColumnTableModel`s. The class allows you to create objects for tables that know how to give a column value for a given row.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Class<COLUMN_TYPE>`
  `getColumnClass()`
  Determines the class of object that is associated with this field (column).
  `String`
  `getColumnDescription()`
  Returns a description of this column.
  `String`
  `getColumnDisplayName(Settings settings)`
  Determines the column heading that will be displayed.
  `String`
  `getColumnName()`
  Determines the unique column heading that may be used to identify a column instance.
  `int`
  `getColumnPreferredWidth()`
  Returns the preferred width for this column.
  `GColumnRenderer<COLUMN_TYPE>`
  `getColumnRenderer()`
  Returns the optional cell renderer for this column; null if no renderer is used.
  `Comparator<COLUMN_TYPE>`
  `getComparator(DynamicColumnTableModel<?> model, int columnIndex)`
  If implemented, will return a comparator that knows how to sort values for this column.
  `GTableHeaderRenderer`
  `getHeaderRenderer()`
  Returns the optional header renderer for this column; null if no renderer is used.
  `int`
  `getMaxLines(Settings settings)`
  Gets the maximum number of text display lines needed for any given cell with the specified settings.
  `SettingsDefinition[]`
  `getSettingsDefinitions()`
  Returns a list of settings definitions for this field.
  `Class<ROW_TYPE>`
  `getSupportedRowType()`
  Returns the single class type of the data that this table field can use to generate columnar data.
  `String`
  `getUniqueIdentifier()`
  Returns a value that is unique for this table column.
  `COLUMN_TYPE`
  `getValue(ROW_TYPE rowObject, Settings settings, DATA_SOURCE data, ServiceProvider serviceProvider)`
  Creates an object that is appropriate for this field (table column) and for the object that is associated with this row of the table.

- ## Method Details

  - ### getColumnName

    String getColumnName()
    Determines the unique column heading that may be used to identify a column instance. This name must be non-changing and is used to save/restore state information.
    Returns:
      the field instance name.

  - ### getColumnClass

    Class<COLUMN_TYPE> getColumnClass()
    Determines the class of object that is associated with this field (column).
    Returns:
      the column class

  - ### getColumnPreferredWidth

    int getColumnPreferredWidth()
    Returns the preferred width for this column. Column should either return a valid positive preferred size or -1.
    Returns:
      the preferred width for this column.

  - ### getSupportedRowType

    Class<ROW_TYPE> getSupportedRowType()
    Returns the single class type of the data that this table field can use to generate columnar data.
    Returns:
      the single class type of the data that this table field can use to generate columnar data.

  - ### getValue

    COLUMN_TYPE getValue(ROW_TYPE rowObject, Settings settings, DATA_SOURCE data, ServiceProvider serviceProvider) throws IllegalArgumentException
    Creates an object that is appropriate for this field (table column) and for the object that is associated with this row of the table.
    Parameters:
      `rowObject` - the object associated with the row in the table.
      `settings` - field settings
      `data` - the expected data object, as defined by the DATA_SOURCE type
      `serviceProvider` - the `ServiceProvider` associated with the table.
    Returns:
      the object for the model to display in the table cell.
    Throws:
      `IllegalArgumentException` - if the rowObject is not one supported by this class.

  - ### getColumnRenderer

    GColumnRenderer<COLUMN_TYPE> getColumnRenderer()
    Returns the optional cell renderer for this column; null if no renderer is used.

    This method allows columns to define custom rendering. The interface returned here ensures that the text used for filtering matches what the users sees (via the `GColumnRenderer.getFilterString(Object, Settings)` method).

    Note: some types should not make use of the aforementioned filter string. These types include the `Number` wrapper types, `Date` and `Enum`s. (This is because the filtering system works naturally with these types.) See `GColumnRenderer`.

    Returns:
      the renderer

  - ### getHeaderRenderer

    GTableHeaderRenderer getHeaderRenderer()
    Returns the optional header renderer for this column; null if no renderer is used.

    This method allows columns to define custom header rendering.

    Returns:
      the renderer

  - ### getSettingsDefinitions

    SettingsDefinition[] getSettingsDefinitions()
    Returns a list of settings definitions for this field.
    Returns:
      list of settings definitions for this field.

  - ### getMaxLines

    int getMaxLines(Settings settings)
    Gets the maximum number of text display lines needed for any given cell with the specified settings.
    Parameters:
      `settings` - field settings
    Returns:
      maximum number of lines needed

  - ### getColumnDisplayName

    String getColumnDisplayName(Settings settings)
    Determines the column heading that will be displayed.
    Parameters:
      `settings` - the settings
    Returns:
      the field name to display as the column heading.

  - ### getColumnDescription

    String getColumnDescription()
    Returns a description of this column. This may be used as a tooltip for the column header
    Returns:
      a description of this column. This may be used as a tooltip for the column header.

  - ### getUniqueIdentifier

    String getUniqueIdentifier()
    Returns a value that is unique for this table column. This is different than getting the display name, which may be shared by different columns.
    Returns:
      the identifier

  - ### getComparator

    Comparator<COLUMN_TYPE> getComparator(DynamicColumnTableModel<?> model, int columnIndex)
    If implemented, will return a comparator that knows how to sort values for this column. Implementors should return `null` if they do not wish to provider a comparator
    Returns:
      the comparator