Class SwingEntityTableModel

java.lang.Object
is.codion.swing.framework.model.SwingEntityTableModel
All Implemented Interfaces:
is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>, is.codion.framework.model.EntityTableModel<SwingEntityEditModel>, is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>, TableModel

public class SwingEntityTableModel extends Object implements is.codion.framework.model.EntityTableModel<SwingEntityEditModel>, is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
A TableModel implementation for displaying and working with entities.
  • Nested Class Summary

    Nested classes/interfaces inherited from interface is.codion.framework.model.EntityTableModel

    is.codion.framework.model.EntityTableModel.ColumnPreferences, is.codion.framework.model.EntityTableModel.OnInsert

    Nested classes/interfaces inherited from interface is.codion.common.model.FilteredModel

    is.codion.common.model.FilteredModel.AbstractRefresher<T extends Object>, is.codion.common.model.FilteredModel.Refresher<T extends Object>

    Nested classes/interfaces inherited from interface is.codion.swing.common.model.component.table.FilteredTableModel

    is.codion.swing.common.model.component.table.FilteredTableModel.Builder<R extends Object,C extends Object>, is.codion.swing.common.model.component.table.FilteredTableModel.ColumnFactory<C extends Object>, is.codion.swing.common.model.component.table.FilteredTableModel.ColumnValueProvider<R extends Object,C extends Object>
  • Field Summary

    Fields inherited from interface is.codion.framework.model.EntityTableModel

    ON_INSERT, ORDER_QUERY_BY_SORT_ORDER, QUERY_HIDDEN_COLUMNS

    Fields inherited from interface is.codion.common.model.FilteredModel

    ASYNC_REFRESH
  • Constructor Summary

    Constructors
    Constructor
    Description
    SwingEntityTableModel(is.codion.framework.domain.entity.EntityType entityType, is.codion.framework.db.EntityConnectionProvider connectionProvider)
    Instantiates a new SwingEntityTableModel.
    SwingEntityTableModel(is.codion.framework.domain.entity.EntityType entityType, is.codion.framework.db.EntityConnectionProvider connectionProvider, is.codion.framework.model.EntityConditionModelFactory conditionModelFactory)
    Instantiates a new SwingEntityTableModel.
    SwingEntityTableModel(is.codion.framework.domain.entity.EntityType entityType, is.codion.framework.db.EntityConnectionProvider connectionProvider, is.codion.swing.common.model.component.table.FilteredTableModel.ColumnFactory<is.codion.framework.domain.entity.attribute.Attribute<?>> columnFactory)
    Instantiates a new SwingEntityTableModel.
    SwingEntityTableModel(is.codion.framework.domain.entity.EntityType entityType, is.codion.framework.db.EntityConnectionProvider connectionProvider, is.codion.swing.common.model.component.table.FilteredTableModel.ColumnFactory<is.codion.framework.domain.entity.attribute.Attribute<?>> columnFactory, is.codion.framework.model.EntityConditionModelFactory conditionModelFactory)
    Instantiates a new SwingEntityTableModel.
    Instantiates a new SwingEntityTableModel.
    SwingEntityTableModel(SwingEntityEditModel editModel, is.codion.framework.model.EntityConditionModelFactory conditionModelFactory)
    Instantiates a new SwingEntityTableModel.
    SwingEntityTableModel(SwingEntityEditModel editModel, is.codion.swing.common.model.component.table.FilteredTableModel.ColumnFactory<is.codion.framework.domain.entity.attribute.Attribute<?>> columnFactory)
    Instantiates a new SwingEntityTableModel.
    SwingEntityTableModel(SwingEntityEditModel editModel, is.codion.swing.common.model.component.table.FilteredTableModel.ColumnFactory<is.codion.framework.domain.entity.attribute.Attribute<?>> columnFactory, is.codion.framework.model.EntityConditionModelFactory conditionModelFactory)
    Instantiates a new SwingEntityTableModel.
  • Method Summary

    Modifier and Type
    Method
    Description
    final void
    addItem(is.codion.framework.domain.entity.Entity item)
     
    final void
    addItemAt(int index, is.codion.framework.domain.entity.Entity item)
     
    final void
    addItems(Collection<is.codion.framework.domain.entity.Entity> items)
     
    final void
    addItemsAt(int index, Collection<is.codion.framework.domain.entity.Entity> items)
     
    final void
    addItemsAtSorted(int index, Collection<is.codion.framework.domain.entity.Entity> items)
     
    final void
    addItemSorted(is.codion.framework.domain.entity.Entity item)
     
    final void
    addItemsSorted(Collection<is.codion.framework.domain.entity.Entity> items)
     
    final void
     
    final is.codion.common.value.ValueSet<is.codion.framework.domain.entity.attribute.Attribute<?>>
     
    backgroundColor(int row, is.codion.framework.domain.entity.attribute.Attribute<?> attribute)
     
    final void
     
    final is.codion.common.event.EventObserver<?>
     
    final is.codion.swing.common.model.component.table.FilteredTableColumnModel<is.codion.framework.domain.entity.attribute.Attribute<?>>
     
    final is.codion.common.state.StateObserver
     
    protected boolean
    conditionEnabled(is.codion.framework.model.EntityTableConditionModel<is.codion.framework.domain.entity.attribute.Attribute<?>> conditionModel)
    It can be necessary to prevent the user from selecting too much data, when working with a large dataset.
    final is.codion.framework.model.EntityTableConditionModel<is.codion.framework.domain.entity.attribute.Attribute<?>>
     
    final is.codion.common.state.State
     
    final is.codion.framework.db.EntityConnection
     
    final is.codion.framework.db.EntityConnectionProvider
     
    final boolean
    containsItem(is.codion.framework.domain.entity.Entity item)
     
    final is.codion.common.event.EventObserver<?>
     
    final Collection<is.codion.framework.domain.entity.Entity>
     
    final is.codion.common.state.State
     
    final is.codion.common.state.State
     
    final <C extends SwingEntityEditModel>
    C
     
    final is.codion.framework.domain.entity.Entities
     
    final is.codion.framework.domain.entity.EntityDefinition
     
    final is.codion.framework.domain.entity.EntityType
     
    final boolean
    filtered(is.codion.framework.domain.entity.Entity item)
     
    final int
     
    final Collection<is.codion.framework.domain.entity.Entity>
     
    final void
     
    final is.codion.common.model.table.TableConditionModel<is.codion.framework.domain.entity.attribute.Attribute<?>>
     
    final Optional<is.codion.framework.domain.entity.Entity>
    find(is.codion.framework.domain.entity.Entity.Key primaryKey)
     
    final Collection<is.codion.framework.domain.entity.Entity>
    find(Collection<is.codion.framework.domain.entity.Entity.Key> keys)
     
    final void
     
    void
    fireTableRowsUpdated(int fromIndex, int toIndex)
     
    foregroundColor(int row, is.codion.framework.domain.entity.attribute.Attribute<?> attribute)
     
    final Class<?>
    getColumnClass(int columnIndex)
     
    final Class<?>
    getColumnClass(is.codion.framework.domain.entity.attribute.Attribute<?> columnIdentifier)
     
    final int
     
    final String
    getColumnName(int columnIndex)
     
    final int
     
    final String
    getStringAt(int rowIndex, is.codion.framework.domain.entity.attribute.Attribute<?> columnIdentifier)
     
    final Object
    getValueAt(int rowIndex, int columnIndex)
     
    final is.codion.common.value.Value<Predicate<is.codion.framework.domain.entity.Entity>>
     
    final int
    indexOf(is.codion.framework.domain.entity.Entity item)
     
    final int
    indexOf(is.codion.framework.domain.entity.Entity.Key primaryKey)
     
    boolean
    isCellEditable(int rowIndex, int modelColumnIndex)
    Returns true if the cell at rowIndex and modelColumnIndex is editable.
    final is.codion.framework.domain.entity.Entity
    itemAt(int rowIndex)
     
    final Collection<is.codion.framework.domain.entity.Entity>
     
    final is.codion.common.value.Value<Integer>
     
    final is.codion.common.state.State
     
    final is.codion.common.value.Value<is.codion.framework.model.EntityTableModel.OnInsert>
     
    protected is.codion.framework.domain.entity.OrderBy
    The order by clause to use when selecting the data for this model.
    final is.codion.common.state.State
     
    final is.codion.common.state.State
     
    final void
     
    final void
    refresh(Collection<is.codion.framework.domain.entity.Entity.Key> keys)
     
    final is.codion.common.model.FilteredModel.Refresher<is.codion.framework.domain.entity.Entity>
     
    protected Collection<is.codion.framework.domain.entity.Entity>
    Queries the data used to populate this EntityTableModel when it is refreshed.
    final void
    refreshThen(Consumer<Collection<is.codion.framework.domain.entity.Entity>> afterRefresh)
     
    final is.codion.common.state.State
     
    final void
    removeItem(is.codion.framework.domain.entity.Entity item)
     
    final is.codion.framework.domain.entity.Entity
    removeItemAt(int index)
     
    final List<is.codion.framework.domain.entity.Entity>
    removeItems(int fromIndex, int toIndex)
     
    final void
    removeItems(Collection<is.codion.framework.domain.entity.Entity> items)
     
    final void
     
    final void
    replace(is.codion.framework.domain.entity.attribute.ForeignKey foreignKey, Collection<is.codion.framework.domain.entity.Entity> foreignKeyValues)
     
    final void
    replace(Collection<is.codion.framework.domain.entity.Entity> entities)
     
    final String
    rowsAsDelimitedString(char delimiter)
     
    final void
     
    final is.codion.swing.common.model.component.table.FilteredTableSearchModel
     
    final void
    select(Collection<is.codion.framework.domain.entity.Entity.Key> keys)
     
    final <T> Collection<T>
    selectedValues(is.codion.framework.domain.entity.attribute.Attribute<?> columnIdentifier)
     
    final is.codion.common.event.EventObserver<?>
     
    final is.codion.swing.common.model.component.table.FilteredTableSelectionModel<is.codion.framework.domain.entity.Entity>
     
    final void
    setItemAt(int index, is.codion.framework.domain.entity.Entity item)
     
    final void
    setValueAt(Object value, int rowIndex, int modelColumnIndex)
    Sets the value in the given cell and updates the underlying Entity.
    final void
    setVisibleColumns(is.codion.framework.domain.entity.attribute.Attribute<?>... attributes)
     
    final void
    setVisibleColumns(List<is.codion.framework.domain.entity.attribute.Attribute<?>> attributes)
     
    final void
     
    final is.codion.swing.common.model.component.table.FilteredTableSortModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
     
    final is.codion.common.model.table.TableSummaryModel<is.codion.framework.domain.entity.attribute.Attribute<?>>
     
    tableModel(Collection<is.codion.framework.domain.entity.Entity> entities, is.codion.framework.db.EntityConnectionProvider connectionProvider)
     
    protected Color
    toColor(Object color)
    Returns a Color instance from the given Object.
    final String
     
    protected String
    Returns the key used to identify user preferences for this table model, that is column positions, widths and such.
    final <T> Collection<T>
    values(is.codion.framework.domain.entity.attribute.Attribute<?> columnIdentifier)
     
    final boolean
    visible(is.codion.framework.domain.entity.Entity item)
     
    final int
     
    final List<is.codion.framework.domain.entity.Entity>
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • SwingEntityTableModel

      public SwingEntityTableModel(is.codion.framework.domain.entity.EntityType entityType, is.codion.framework.db.EntityConnectionProvider connectionProvider)
      Instantiates a new SwingEntityTableModel.
      Parameters:
      entityType - the entityType
      connectionProvider - the connection provider
    • SwingEntityTableModel

      public SwingEntityTableModel(is.codion.framework.domain.entity.EntityType entityType, is.codion.framework.db.EntityConnectionProvider connectionProvider, is.codion.swing.common.model.component.table.FilteredTableModel.ColumnFactory<is.codion.framework.domain.entity.attribute.Attribute<?>> columnFactory)
      Instantiates a new SwingEntityTableModel.
      Parameters:
      entityType - the entityType
      connectionProvider - the connection provider
      columnFactory - the table column factory
    • SwingEntityTableModel

      public SwingEntityTableModel(is.codion.framework.domain.entity.EntityType entityType, is.codion.framework.db.EntityConnectionProvider connectionProvider, is.codion.framework.model.EntityConditionModelFactory conditionModelFactory)
      Instantiates a new SwingEntityTableModel.
      Parameters:
      entityType - the entityType
      connectionProvider - the connection provider
      conditionModelFactory - the table condition model factory
    • SwingEntityTableModel

      public SwingEntityTableModel(is.codion.framework.domain.entity.EntityType entityType, is.codion.framework.db.EntityConnectionProvider connectionProvider, is.codion.swing.common.model.component.table.FilteredTableModel.ColumnFactory<is.codion.framework.domain.entity.attribute.Attribute<?>> columnFactory, is.codion.framework.model.EntityConditionModelFactory conditionModelFactory)
      Instantiates a new SwingEntityTableModel.
      Parameters:
      entityType - the entityType
      connectionProvider - the connection provider
      columnFactory - the table column factory
      conditionModelFactory - the table condition model factory
    • SwingEntityTableModel

      public SwingEntityTableModel(SwingEntityEditModel editModel)
      Instantiates a new SwingEntityTableModel.
      Parameters:
      editModel - the edit model
    • SwingEntityTableModel

      public SwingEntityTableModel(SwingEntityEditModel editModel, is.codion.swing.common.model.component.table.FilteredTableModel.ColumnFactory<is.codion.framework.domain.entity.attribute.Attribute<?>> columnFactory)
      Instantiates a new SwingEntityTableModel.
      Parameters:
      editModel - the edit model
      columnFactory - the table column factory
    • SwingEntityTableModel

      public SwingEntityTableModel(SwingEntityEditModel editModel, is.codion.framework.model.EntityConditionModelFactory conditionModelFactory)
      Instantiates a new SwingEntityTableModel.
      Parameters:
      editModel - the edit model
      conditionModelFactory - the table condition model factory
    • SwingEntityTableModel

      public SwingEntityTableModel(SwingEntityEditModel editModel, is.codion.swing.common.model.component.table.FilteredTableModel.ColumnFactory<is.codion.framework.domain.entity.attribute.Attribute<?>> columnFactory, is.codion.framework.model.EntityConditionModelFactory conditionModelFactory)
      Instantiates a new SwingEntityTableModel.
      Parameters:
      editModel - the edit model
      columnFactory - the table column factory
      conditionModelFactory - the table condition model factory
  • Method Details

    • entities

      public final is.codion.framework.domain.entity.Entities entities()
      Specified by:
      entities in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • entityDefinition

      public final is.codion.framework.domain.entity.EntityDefinition entityDefinition()
      Specified by:
      entityDefinition in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • toString

      public final String toString()
      Overrides:
      toString in class Object
    • attributes

      public final is.codion.common.value.ValueSet<is.codion.framework.domain.entity.attribute.Attribute<?>> attributes()
      Specified by:
      attributes in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • limit

      public final is.codion.common.value.Value<Integer> limit()
      Specified by:
      limit in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • queryHiddenColumns

      public final is.codion.common.state.State queryHiddenColumns()
      Specified by:
      queryHiddenColumns in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • orderQueryBySortOrder

      public final is.codion.common.state.State orderQueryBySortOrder()
      Specified by:
      orderQueryBySortOrder in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • conditionRequired

      public final is.codion.common.state.State conditionRequired()
      Specified by:
      conditionRequired in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • onInsert

      public final is.codion.common.value.Value<is.codion.framework.model.EntityTableModel.OnInsert> onInsert()
      Specified by:
      onInsert in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • removeDeleted

      public final is.codion.common.state.State removeDeleted()
      Specified by:
      removeDeleted in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • editEvents

      public final is.codion.common.state.State editEvents()
      Specified by:
      editEvents in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • entityType

      public final is.codion.framework.domain.entity.EntityType entityType()
      Specified by:
      entityType in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • conditionModel

      public final is.codion.framework.model.EntityTableConditionModel<is.codion.framework.domain.entity.attribute.Attribute<?>> conditionModel()
      Specified by:
      conditionModel in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • editModel

      public final <C extends SwingEntityEditModel> C editModel()
      Specified by:
      editModel in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • connectionProvider

      public final is.codion.framework.db.EntityConnectionProvider connectionProvider()
      Specified by:
      connectionProvider in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • connection

      public final is.codion.framework.db.EntityConnection connection()
      Specified by:
      connection in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • editable

      public final is.codion.common.state.State editable()
      Specified by:
      editable in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • isCellEditable

      public boolean isCellEditable(int rowIndex, int modelColumnIndex)
      Returns true if the cell at rowIndex and modelColumnIndex is editable.
      Specified by:
      isCellEditable in interface TableModel
      Parameters:
      rowIndex - the row to edit
      modelColumnIndex - the model index of the column to edit
      Returns:
      true if the cell is editable
      See Also:
    • setValueAt

      public final void setValueAt(Object value, int rowIndex, int modelColumnIndex)
      Sets the value in the given cell and updates the underlying Entity.
      Specified by:
      setValueAt in interface TableModel
      Parameters:
      value - the new value
      rowIndex - the row whose value is to be changed
      modelColumnIndex - the model index of the column to be changed
    • backgroundColor

      public Color backgroundColor(int row, is.codion.framework.domain.entity.attribute.Attribute<?> attribute)
      Specified by:
      backgroundColor in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • foregroundColor

      public Color foregroundColor(int row, is.codion.framework.domain.entity.attribute.Attribute<?> attribute)
      Specified by:
      foregroundColor in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • find

      public final Optional<is.codion.framework.domain.entity.Entity> find(is.codion.framework.domain.entity.Entity.Key primaryKey)
      Specified by:
      find in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • indexOf

      public final int indexOf(is.codion.framework.domain.entity.Entity.Key primaryKey)
      Specified by:
      indexOf in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • replace

      public final void replace(Collection<is.codion.framework.domain.entity.Entity> entities)
      Specified by:
      replace in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • refresh

      public final void refresh(Collection<is.codion.framework.domain.entity.Entity.Key> keys)
      Specified by:
      refresh in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • replace

      public final void replace(is.codion.framework.domain.entity.attribute.ForeignKey foreignKey, Collection<is.codion.framework.domain.entity.Entity> foreignKeyValues)
      Specified by:
      replace in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • select

      public final void select(Collection<is.codion.framework.domain.entity.Entity.Key> keys)
      Specified by:
      select in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • find

      public final Collection<is.codion.framework.domain.entity.Entity> find(Collection<is.codion.framework.domain.entity.Entity.Key> keys)
      Specified by:
      find in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • deleteSelected

      public final Collection<is.codion.framework.domain.entity.Entity> deleteSelected() throws is.codion.common.db.exception.DatabaseException
      Specified by:
      deleteSelected in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
      Throws:
      is.codion.common.db.exception.DatabaseException
    • setVisibleColumns

      public final void setVisibleColumns(is.codion.framework.domain.entity.attribute.Attribute<?>... attributes)
      Specified by:
      setVisibleColumns in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • setVisibleColumns

      public final void setVisibleColumns(List<is.codion.framework.domain.entity.attribute.Attribute<?>> attributes)
      Specified by:
      setVisibleColumns in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • savePreferences

      public final void savePreferences()
      Specified by:
      savePreferences in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • conditionChanged

      public final is.codion.common.state.StateObserver conditionChanged()
      Specified by:
      conditionChanged in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • selectionEvent

      public final is.codion.common.event.EventObserver<?> selectionEvent()
      Specified by:
      selectionEvent in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
    • filterItems

      public final void filterItems()
      Specified by:
      filterItems in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
    • includeCondition

      public final is.codion.common.value.Value<Predicate<is.codion.framework.domain.entity.Entity>> includeCondition()
      Specified by:
      includeCondition in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
    • items

      public final Collection<is.codion.framework.domain.entity.Entity> items()
      Specified by:
      items in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
    • visibleItems

      public final List<is.codion.framework.domain.entity.Entity> visibleItems()
      Specified by:
      visibleItems in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
    • filteredItems

      public final Collection<is.codion.framework.domain.entity.Entity> filteredItems()
      Specified by:
      filteredItems in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
    • visibleCount

      public final int visibleCount()
      Specified by:
      visibleCount in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
    • filteredCount

      public final int filteredCount()
      Specified by:
      filteredCount in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
    • containsItem

      public final boolean containsItem(is.codion.framework.domain.entity.Entity item)
      Specified by:
      containsItem in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
    • visible

      public final boolean visible(is.codion.framework.domain.entity.Entity item)
      Specified by:
      visible in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
    • filtered

      public final boolean filtered(is.codion.framework.domain.entity.Entity item)
      Specified by:
      filtered in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
    • refresher

      public final is.codion.common.model.FilteredModel.Refresher<is.codion.framework.domain.entity.Entity> refresher()
      Specified by:
      refresher in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
    • refresh

      public final void refresh()
      Specified by:
      refresh in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
      Specified by:
      refresh in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
      Specified by:
      refresh in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • refreshThen

      public final void refreshThen(Consumer<Collection<is.codion.framework.domain.entity.Entity>> afterRefresh)
      Specified by:
      refreshThen in interface is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
      Specified by:
      refreshThen in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • clear

      public final void clear()
      Specified by:
      clear in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
      Specified by:
      clear in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • getRowCount

      public final int getRowCount()
      Specified by:
      getRowCount in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
      Specified by:
      getRowCount in interface TableModel
    • indexOf

      public final int indexOf(is.codion.framework.domain.entity.Entity item)
      Specified by:
      indexOf in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • itemAt

      public final is.codion.framework.domain.entity.Entity itemAt(int rowIndex)
      Specified by:
      itemAt in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • getValueAt

      public final Object getValueAt(int rowIndex, int columnIndex)
      Specified by:
      getValueAt in interface TableModel
    • getStringAt

      public final String getStringAt(int rowIndex, is.codion.framework.domain.entity.attribute.Attribute<?> columnIdentifier)
      Specified by:
      getStringAt in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • addItems

      public final void addItems(Collection<is.codion.framework.domain.entity.Entity> items)
      Specified by:
      addItems in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • addItemsSorted

      public final void addItemsSorted(Collection<is.codion.framework.domain.entity.Entity> items)
      Specified by:
      addItemsSorted in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • addItemsAt

      public final void addItemsAt(int index, Collection<is.codion.framework.domain.entity.Entity> items)
      Specified by:
      addItemsAt in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • addItemsAtSorted

      public final void addItemsAtSorted(int index, Collection<is.codion.framework.domain.entity.Entity> items)
      Specified by:
      addItemsAtSorted in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • addItem

      public final void addItem(is.codion.framework.domain.entity.Entity item)
      Specified by:
      addItem in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • addItemAt

      public final void addItemAt(int index, is.codion.framework.domain.entity.Entity item)
      Specified by:
      addItemAt in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • addItemSorted

      public final void addItemSorted(is.codion.framework.domain.entity.Entity item)
      Specified by:
      addItemSorted in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • setItemAt

      public final void setItemAt(int index, is.codion.framework.domain.entity.Entity item)
      Specified by:
      setItemAt in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • removeItems

      public final void removeItems(Collection<is.codion.framework.domain.entity.Entity> items)
      Specified by:
      removeItems in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • removeItem

      public final void removeItem(is.codion.framework.domain.entity.Entity item)
      Specified by:
      removeItem in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • removeItemAt

      public final is.codion.framework.domain.entity.Entity removeItemAt(int index)
      Specified by:
      removeItemAt in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • removeItems

      public final List<is.codion.framework.domain.entity.Entity> removeItems(int fromIndex, int toIndex)
      Specified by:
      removeItems in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • fireTableDataChanged

      public final void fireTableDataChanged()
      Specified by:
      fireTableDataChanged in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • fireTableRowsUpdated

      public void fireTableRowsUpdated(int fromIndex, int toIndex)
      Specified by:
      fireTableRowsUpdated in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • columnModel

      public final is.codion.swing.common.model.component.table.FilteredTableColumnModel<is.codion.framework.domain.entity.attribute.Attribute<?>> columnModel()
      Specified by:
      columnModel in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • values

      public final <T> Collection<T> values(is.codion.framework.domain.entity.attribute.Attribute<?> columnIdentifier)
      Specified by:
      values in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • getColumnClass

      public final Class<?> getColumnClass(is.codion.framework.domain.entity.attribute.Attribute<?> columnIdentifier)
      Specified by:
      getColumnClass in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • selectedValues

      public final <T> Collection<T> selectedValues(is.codion.framework.domain.entity.attribute.Attribute<?> columnIdentifier)
      Specified by:
      selectedValues in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • rowsAsDelimitedString

      public final String rowsAsDelimitedString(char delimiter)
      Specified by:
      rowsAsDelimitedString in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • mergeOnRefresh

      public final is.codion.common.state.State mergeOnRefresh()
      Specified by:
      mergeOnRefresh in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • sortItems

      public final void sortItems()
      Specified by:
      sortItems in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • selectionModel

      public final is.codion.swing.common.model.component.table.FilteredTableSelectionModel<is.codion.framework.domain.entity.Entity> selectionModel()
      Specified by:
      selectionModel in interface is.codion.framework.model.EntityTableModel<SwingEntityEditModel>
      Specified by:
      selectionModel in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • sortModel

      public final is.codion.swing.common.model.component.table.FilteredTableSortModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>> sortModel()
      Specified by:
      sortModel in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • searchModel

      public final is.codion.swing.common.model.component.table.FilteredTableSearchModel searchModel()
      Specified by:
      searchModel in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • filterModel

      public final is.codion.common.model.table.TableConditionModel<is.codion.framework.domain.entity.attribute.Attribute<?>> filterModel()
      Specified by:
      filterModel in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • summaryModel

      public final is.codion.common.model.table.TableSummaryModel<is.codion.framework.domain.entity.attribute.Attribute<?>> summaryModel()
      Specified by:
      summaryModel in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • getColumnCount

      public final int getColumnCount()
      Specified by:
      getColumnCount in interface TableModel
    • getColumnName

      public final String getColumnName(int columnIndex)
      Specified by:
      getColumnName in interface TableModel
    • getColumnClass

      public final Class<?> getColumnClass(int columnIndex)
      Specified by:
      getColumnClass in interface TableModel
    • dataChangedEvent

      public final is.codion.common.event.EventObserver<?> dataChangedEvent()
      Specified by:
      dataChangedEvent in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • clearedEvent

      public final is.codion.common.event.EventObserver<?> clearedEvent()
      Specified by:
      clearedEvent in interface is.codion.swing.common.model.component.table.FilteredTableModel<is.codion.framework.domain.entity.Entity,is.codion.framework.domain.entity.attribute.Attribute<?>>
    • addTableModelListener

      public final void addTableModelListener(TableModelListener listener)
      Specified by:
      addTableModelListener in interface TableModel
    • removeTableModelListener

      public final void removeTableModelListener(TableModelListener listener)
      Specified by:
      removeTableModelListener in interface TableModel
    • tableModel

      public static SwingEntityTableModel tableModel(Collection<is.codion.framework.domain.entity.Entity> entities, is.codion.framework.db.EntityConnectionProvider connectionProvider)
      Parameters:
      entities - the entities to display
      connectionProvider - the connection provider
      Returns:
      a static SwingEntityTableModel instance containing the given entities
      Throws:
      IllegalArgumentException - in case entities is empty
    • refreshItems

      protected Collection<is.codion.framework.domain.entity.Entity> refreshItems()
      Queries the data used to populate this EntityTableModel when it is refreshed. This method should take into account the where and having conditions (EntityTableConditionModel.where(Conjunction), EntityTableConditionModel.having(Conjunction)), order by clause (orderBy()), the limit (limit()) and select attributes (attributes()) when querying.
      Returns:
      entities selected from the database according to the query condition.
      See Also:
    • conditionEnabled

      protected boolean conditionEnabled(is.codion.framework.model.EntityTableConditionModel<is.codion.framework.domain.entity.attribute.Attribute<?>> conditionModel)
      It can be necessary to prevent the user from selecting too much data, when working with a large dataset. This can be done by enabling the conditionRequired(), which prevents a refresh as long as this method returns false. This default implementation simply returns TableConditionModel.enabled(). Override for a more fine grained control, such as requiring a specific column condition to be enabled.
      Parameters:
      conditionModel - the table condition model
      Returns:
      true if enough conditions are enabled for a safe refresh
      See Also:
    • toColor

      protected Color toColor(Object color)
      Returns a Color instance from the given Object. Color instances are returned as-is, but instances of String are assumed to be in HEX format (f.ex: #ffff00" or #00ff00) and are parsed with Color.decode(String). Colors parsed from Strings are cached. Override to support other representations.
      Parameters:
      color - the object representing the color.
      Returns:
      a Color instance based on the given Object
      Throws:
      IllegalArgumentException - in case the representation is not supported
      NullPointerException - in case color is null
    • orderBy

      protected is.codion.framework.domain.entity.OrderBy orderBy()
      The order by clause to use when selecting the data for this model. If ordering by sort order is enabled a OrderBy clause is constructed according to the sort order of column based attributes, otherwise the order by clause defined for the underlying entity is returned.
      Returns:
      the order by clause
      See Also:
    • userPreferencesKey

      protected String userPreferencesKey()
      Returns the key used to identify user preferences for this table model, that is column positions, widths and such. The default implementation is:
       
       return getClass().getSimpleName() + "-" + entityType();
       
       
      Override in case this key is not unique.
      Returns:
      the key used to identify user preferences for this table model