Interface EntityTableModel<E extends EntityEditModel>

Type Parameters:
E - the type of EntityEditModel used by this EntityTableModel
All Superinterfaces:
is.codion.common.model.FilterModel<is.codion.framework.domain.entity.Entity>

public interface EntityTableModel<E extends EntityEditModel> extends is.codion.common.model.FilterModel<is.codion.framework.domain.entity.Entity>
Specifies a table model containing Entity instances.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static enum 
    Defines the actions a table model can perform when entities are inserted via the associated edit model

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

    is.codion.common.model.FilterModel.AbstractRefresher<T extends Object>, is.codion.common.model.FilterModel.Refresher<T extends Object>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final is.codion.common.property.PropertyValue<Boolean>
    Specifies whether table models handle entity edit events, by replacing updated entities
    Value type: Boolean
    Default value: true
    static final is.codion.common.property.PropertyValue<EntityTableModel.OnInsert>
    Specifies the default action a table model takes when entities are inserted via its edit model.

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

    ASYNC_REFRESH
  • Method Summary

    Modifier and Type
    Method
    Description
    is.codion.common.value.ValueSet<is.codion.framework.domain.entity.attribute.Attribute<?>>
    Returns the ValueSet controlling which attributes are included when selecting entities to populate this model.
    backgroundColor(int row, is.codion.framework.domain.entity.attribute.Attribute<?> attribute)
     
    void
    Clears all items from this table model
    is.codion.common.state.StateObserver
     
     
    is.codion.common.state.State
    Returns a State controlling whether this table model should display all underlying entities when no query condition has been set.
    is.codion.framework.db.EntityConnection
    Do not cache or keep the connection returned by this method in a long living field, since it may become invalid and thereby unusable.
    is.codion.framework.db.EntityConnectionProvider
     
    Collection<is.codion.framework.domain.entity.Entity>
    Deletes the selected entities
    is.codion.common.state.State
     
    <C extends E>
    C
     
    is.codion.framework.domain.entity.Entities
     
    is.codion.framework.domain.entity.EntityDefinition
     
    is.codion.framework.domain.entity.EntityType
     
    Optional<is.codion.framework.domain.entity.Entity>
    find(is.codion.framework.domain.entity.Entity.Key primaryKey)
    Finds the entity in this table model having the given primary key
    Collection<is.codion.framework.domain.entity.Entity>
    find(Collection<is.codion.framework.domain.entity.Entity.Key> keys)
    Finds entities in this table model according to the values in keys
    foregroundColor(int row, is.codion.framework.domain.entity.attribute.Attribute<?> attribute)
     
    int
     
    is.codion.common.state.State
     
    int
    indexOf(is.codion.framework.domain.entity.Entity.Key primaryKey)
     
    is.codion.common.value.Value<Integer>
    Returns the Value controlling the maximum number of rows to fetch via the underlying query the next time this table model is refreshed, a null value means all rows should be fetched
    is.codion.common.value.Value<EntityTableModel.OnInsert>
     
    is.codion.common.value.Value<is.codion.framework.domain.entity.OrderBy>
    Controls the order by clause to use when selecting the data for this model.
    void
    Refreshes the items in this table model, according to the underlying condition
    void
    refresh(Collection<is.codion.framework.domain.entity.Entity.Key> keys)
    Refreshes the entities with the given keys by re-selecting them from the underlying database.
    is.codion.common.state.State
     
    void
    replace(is.codion.framework.domain.entity.attribute.ForeignKey foreignKey, Collection<is.codion.framework.domain.entity.Entity> foreignKeyValues)
    For every entity in this table model, replaces the foreign key instance bearing the primary key with the corresponding entity from foreignKeyValues, useful when attribute values have been changed in the referenced entity that must be reflected in the table model.
    void
    replace(Collection<is.codion.framework.domain.entity.Entity> entities)
    Replaces the given entities in this table model
    void
    select(Collection<is.codion.framework.domain.entity.Entity.Key> keys)
    Selects entities according to the primary keys in primaryKeys
    is.codion.common.event.EventObserver<?>
     
    is.codion.common.model.table.TableSelectionModel<is.codion.framework.domain.entity.Entity>
     

    Methods inherited from interface is.codion.common.model.FilterModel

    containsItem, filtered, filteredCount, filteredItems, filterItems, includeCondition, items, refresher, refreshThen, visible, visibleCount, visibleItems
  • Field Details

  • Method Details

    • entityType

      is.codion.framework.domain.entity.EntityType entityType()
      Returns:
      the type of the entity this table model is based on
    • connectionProvider

      is.codion.framework.db.EntityConnectionProvider connectionProvider()
      Returns:
      the connection provider used by this table model
    • connection

      is.codion.framework.db.EntityConnection connection()
      Do not cache or keep the connection returned by this method in a long living field, since it may become invalid and thereby unusable.
      Returns:
      the connection used by this table model
    • entities

      is.codion.framework.domain.entity.Entities entities()
      Returns:
      the underlying domain entities
    • entityDefinition

      is.codion.framework.domain.entity.EntityDefinition entityDefinition()
      Returns:
      the definition of the underlying entity
    • editModel

      <C extends E> C editModel()
      Type Parameters:
      C - the edit model type Returns the EntityEditModel associated with this table model
      Returns:
      the edit model associated with this table model
    • replace

      void replace(is.codion.framework.domain.entity.attribute.ForeignKey foreignKey, Collection<is.codion.framework.domain.entity.Entity> foreignKeyValues)
      For every entity in this table model, replaces the foreign key instance bearing the primary key with the corresponding entity from foreignKeyValues, useful when attribute values have been changed in the referenced entity that must be reflected in the table model.
      Parameters:
      foreignKey - the foreign key
      foreignKeyValues - the foreign key entities
    • replace

      void replace(Collection<is.codion.framework.domain.entity.Entity> entities)
      Replaces the given entities in this table model
      Parameters:
      entities - the entities to replace
    • refresh

      void refresh(Collection<is.codion.framework.domain.entity.Entity.Key> keys)
      Refreshes the entities with the given keys by re-selecting them from the underlying database.
      Parameters:
      keys - the keys of the entities to refresh
    • conditionModel

      EntityTableConditionModel conditionModel()
      Returns:
      the EntityTableConditionModel instance used by this table model
    • editable

      is.codion.common.state.State editable()
      Returns:
      the State controlling whether this table model is editable
    • backgroundColor

      Object backgroundColor(int row, is.codion.framework.domain.entity.attribute.Attribute<?> attribute)
      Parameters:
      row - the row for which to retrieve the background color
      attribute - the attribute for which to retrieve the background color
      Returns:
      an Object representing the background color for this row and attribute, specified by the row entity
      See Also:
      • EntityDefinition.Builder.backgroundColorProvider(ColorProvider)
    • foregroundColor

      Object foregroundColor(int row, is.codion.framework.domain.entity.attribute.Attribute<?> attribute)
      Parameters:
      row - the row for which to retrieve the foreground color
      attribute - the attribute for which to retrieve the foreground color
      Returns:
      an Object representing the foreground color for this row and attribute, specified by the row entity
      See Also:
      • EntityDefinition.Builder.foregroundColorProvider(ColorProvider)
    • attributes

      is.codion.common.value.ValueSet<is.codion.framework.domain.entity.attribute.Attribute<?>> attributes()
      Returns the ValueSet controlling which attributes are included when selecting entities to populate this model. Note that an empty ValueSet indicates that the default select attributes should be used.
      Returns:
      the ValueSet controlling the selected attributes
    • limit

      is.codion.common.value.Value<Integer> limit()
      Returns the Value controlling the maximum number of rows to fetch via the underlying query the next time this table model is refreshed, a null value means all rows should be fetched
      Returns:
      the value controlling the limit
    • orderBy

      is.codion.common.value.Value<is.codion.framework.domain.entity.OrderBy> orderBy()
      Controls the order by clause to use when selecting the data for this model. Setting this value to null reverts back to the default order by for the underlying entity, if one has been specified
      Returns:
      the value controlling the order by clause
      See Also:
      • EntityDefinition.orderBy()
    • deleteSelected

      Collection<is.codion.framework.domain.entity.Entity> deleteSelected() throws is.codion.common.db.exception.DatabaseException
      Deletes the selected entities
      Returns:
      the deleted entities
      Throws:
      is.codion.common.db.exception.DatabaseException - in case of a database exception
      is.codion.common.model.CancelException - in case the user cancels the operation
      IllegalStateException - in case this table model has no edit model or if the edit model does not allow deleting
    • conditionRequired

      is.codion.common.state.State conditionRequired()
      Returns a State controlling whether this table model should display all underlying entities when no query condition has been set. Setting this value to 'true' prevents all rows from being fetched by accident, when no condition has been set, which is recommended for tables with a large underlying dataset.
      Returns:
      a State specifying whether this table model requires a query condition
    • handleEditEvents

      is.codion.common.state.State handleEditEvents()
      Returns:
      the state controlling whether this table model handles entity edit events, by replacing updated entities
      See Also:
    • onInsert

      is.codion.common.value.Value<EntityTableModel.OnInsert> onInsert()
      Returns:
      the Value controlling the action to perform when entities are inserted via the associated edit model
      See Also:
    • removeDeleted

      is.codion.common.state.State removeDeleted()
      Returns:
      the State controlling whether entities that are deleted via the associated edit model should be automatically removed from this table model
    • find

      Collection<is.codion.framework.domain.entity.Entity> find(Collection<is.codion.framework.domain.entity.Entity.Key> keys)
      Finds entities in this table model according to the values in keys
      Parameters:
      keys - the primary key values to use as condition
      Returns:
      the entities from this table model having the primary key values as in keys
    • select

      void select(Collection<is.codion.framework.domain.entity.Entity.Key> keys)
      Selects entities according to the primary keys in primaryKeys
      Parameters:
      keys - the primary keys of the entities to select
    • find

      Optional<is.codion.framework.domain.entity.Entity> find(is.codion.framework.domain.entity.Entity.Key primaryKey)
      Finds the entity in this table model having the given primary key
      Parameters:
      primaryKey - the primary key to search by
      Returns:
      the entity with the given primary key from the table model, an empty Optional if not found
    • indexOf

      int indexOf(is.codion.framework.domain.entity.Entity.Key primaryKey)
      Parameters:
      primaryKey - the primary key
      Returns:
      the row index of the entity with the given primary key, -1 if not found
    • refresh

      void refresh()
      Refreshes the items in this table model, according to the underlying condition
      Specified by:
      refresh in interface is.codion.common.model.FilterModel<E extends EntityEditModel>
      See Also:
    • clear

      void clear()
      Clears all items from this table model
    • getRowCount

      int getRowCount()
      Returns:
      the number of visible rows in this table model
    • selectionModel

      is.codion.common.model.table.TableSelectionModel<is.codion.framework.domain.entity.Entity> selectionModel()
      Returns:
      the TableSelectionModel
    • conditionChanged

      is.codion.common.state.StateObserver conditionChanged()
      Returns:
      a StateObserver indicating if the search condition has changed since last refresh
    • selectionEvent

      is.codion.common.event.EventObserver<?> selectionEvent()
      Returns:
      an observer notified when the selection changes in the underlying selection model