Module is.codion.framework.model
Package is.codion.framework.model
Interface EntityTableModel<E extends EntityEditModel>
- Type Parameters:
E- the type ofEntityEditModelused by thisEntityTableModel
- All Superinterfaces:
is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
public interface EntityTableModel<E extends EntityEditModel>
extends is.codion.common.model.FilteredModel<is.codion.framework.domain.entity.Entity>
Specifies a table model containing
Entity instances.-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceRepresents preferences for an Attribute based table column.static enumDefines the actions a table model can perform when entities are inserted via the associated edit model -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final is.codion.common.property.PropertyValue<EntityTableModel.OnInsert>Specifies the default action a table model takes when entities are inserted via its edit model.static final is.codion.common.property.PropertyValue<Boolean>Specifies whether the table model sort order is used as a basis for the query order by clause.static final is.codion.common.property.PropertyValue<Boolean>Specifies whether the values of hidden columns are included in the underlying query
Value type: Boolean
Default value: trueFields inherited from interface is.codion.common.model.FilteredModel
ASYNC_REFRESH -
Method Summary
Modifier and TypeMethodDescriptionis.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) voidclear()Clears all items from this table modelis.codion.common.state.StateObserverEntityTableConditionModel<is.codion.framework.domain.entity.attribute.Attribute<?>>is.codion.common.state.StateReturns a State controlling whether this table model should display all underlying entities when no query condition has been set.is.codion.framework.db.EntityConnectionDo 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.EntityConnectionProviderCollection<is.codion.framework.domain.entity.Entity>Deletes the selected entitiesis.codion.common.state.Stateeditable()is.codion.common.state.State<C extends E>
Cis.codion.framework.domain.entity.Entitiesentities()is.codion.framework.domain.entity.EntityDefinitionis.codion.framework.domain.entity.EntityTypeOptional<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 keyCollection<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 inkeysforegroundColor(int row, is.codion.framework.domain.entity.attribute.Attribute<?> attribute) intintindexOf(is.codion.framework.domain.entity.Entity.Key primaryKey) 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 fetchedis.codion.common.value.Value<EntityTableModel.OnInsert>onInsert()is.codion.common.state.StateSpecifies whether the current sort order is used as a basis for the query order by clause.is.codion.common.state.StateReturns whether the values of hidden columns are included when querying datavoidrefresh()Refreshes the items in this table model, according to the underlying conditionvoidrefresh(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.Statevoidreplace(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 fromforeignKeyValues, useful when attribute values have been changed in the referenced entity that must be reflected in the table model.voidreplace(Collection<is.codion.framework.domain.entity.Entity> entities) Replaces the given entities in this table modelvoidSaves any user preferences.voidselect(Collection<is.codion.framework.domain.entity.Entity.Key> keys) Selects entities according to the primary keys inprimaryKeysis.codion.common.event.EventObserver<?>is.codion.common.model.table.TableSelectionModel<is.codion.framework.domain.entity.Entity>voidsetVisibleColumns(is.codion.framework.domain.entity.attribute.Attribute<?>... attributes) Arranges the column model so that only the given columns are visible and in the given ordervoidsetVisibleColumns(List<is.codion.framework.domain.entity.attribute.Attribute<?>> attributes) Arranges the column model so that only the given columns are visible and in the given orderMethods inherited from interface is.codion.common.model.FilteredModel
containsItem, filtered, filteredCount, filteredItems, filterItems, includeCondition, items, refresher, refreshThen, visible, visibleCount, visibleItems
-
Field Details
-
QUERY_HIDDEN_COLUMNS
Specifies whether the values of hidden columns are included in the underlying query
Value type: Boolean
Default value: true -
ORDER_QUERY_BY_SORT_ORDER
Specifies whether the table model sort order is used as a basis for the query order by clause. Note that this only applies to column attributes. Value type: Boolean
Default value: false -
ON_INSERT
Specifies the default action a table model takes when entities are inserted via its edit model. Value type:EntityTableModel.OnInsert
Default value:EntityTableModel.OnInsert.ADD_TOP
-
-
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
- Type Parameters:
C- the edit model type Returns theEntityEditModelassociated 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 fromforeignKeyValues, useful when attribute values have been changed in the referenced entity that must be reflected in the table model.- Parameters:
foreignKey- the foreign keyforeignKeyValues- the foreign key entities
-
replace
Replaces the given entities in this table model- Parameters:
entities- the entities to replace
-
refresh
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<is.codion.framework.domain.entity.attribute.Attribute<?>> conditionModel()- Returns:
- the
EntityTableConditionModelinstance used by this table model
-
editable
is.codion.common.state.State editable()- Returns:
- the State controlling whether this table model is editable
-
backgroundColor
- Parameters:
row- the row for which to retrieve the background colorattribute- 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
- Parameters:
row- the row for which to retrieve the foreground colorattribute- 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
- See Also:
-
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
-
queryHiddenColumns
is.codion.common.state.State queryHiddenColumns()Returns whether the values of hidden columns are included when querying data- Returns:
- the State controlling whether the values of hidden columns are included when querying data
-
orderQueryBySortOrder
is.codion.common.state.State orderQueryBySortOrder()Specifies whether the current sort order is used as a basis for the query order by clause. Note that this only applies to column attributes.- Returns:
- the State controlling whether the current sort order should be used as a basis for the query order by clause
-
deleteSelected
Collection<is.codion.framework.domain.entity.Entity> deleteSelected() throws is.codion.common.db.exception.DatabaseExceptionDeletes the selected entities- Returns:
- the deleted entities
- Throws:
is.codion.common.db.exception.DatabaseException- in case of a database exceptionis.codion.common.model.CancelException- in case the user cancels the operationIllegalStateException- 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
-
editEvents
is.codion.common.state.State editEvents()- Returns:
- the state controlling whether this table model handles entity edit events, by replacing foreign key values
- 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 inkeys- 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
Selects entities according to the primary keys inprimaryKeys- 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
-
savePreferences
void savePreferences()Saves any user preferences. Note that ifEntityModel.USE_CLIENT_PREFERENCESis set to 'false', calling this method has no effect. -
setVisibleColumns
void setVisibleColumns(is.codion.framework.domain.entity.attribute.Attribute<?>... attributes) Arranges the column model so that only the given columns are visible and in the given order- Parameters:
attributes- the column attributes
-
setVisibleColumns
Arranges the column model so that only the given columns are visible and in the given order- Parameters:
attributes- the column attributes
-
refresh
void refresh()Refreshes the items in this table model, according to the underlying condition- Specified by:
refreshin interfaceis.codion.common.model.FilteredModel<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
-