Module is.codion.framework.model
Package is.codion.framework.model
Interface EntityTableModel<E extends EntityEditModel>
- Type Parameters:
E
- the type ofEntityEditModel
used by thisEntityTableModel
- All Superinterfaces:
FilteredModel<Entity>
- All Known Implementing Classes:
SwingEntityTableModel
Specifies a table model containing
Entity
instances.-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Represents preferences for an Attribute based table column.static enum
Defines the actions a table model can perform when entities are inserted via the associated edit modelNested classes/interfaces inherited from interface is.codion.common.model.FilteredModel
FilteredModel.AbstractRefresher<T>, FilteredModel.Refresher<T>
-
Field Summary
Modifier and TypeFieldDescriptionstatic final PropertyValue<EntityTableModel.OnInsert>
Specifies the default action a table model takes when entities are inserted via its edit model.static final PropertyValue<Boolean>
Specifies whether the table model sort order is used as a basis for the query order by clause.static final 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 TypeMethodDescriptionvoid
addSelectionListener
(Runnable listener) Returns the ValueSet controlling which attributes are included when selecting entities to populate this model.backgroundColor
(int row, Attribute<?> attribute) void
clear()
Clears all items from this table modelReturns a State controlling whether this table model should display all underlying entities when no query condition has been set.void
Deletes the selected entitieseditable()
<C extends E>
Centities()
find
(Entity.Key primaryKey) Finds the entity in this table model having the given primary keyfind
(Collection<Entity.Key> keys) Finds entities in this table model according to the values inkeys
foregroundColor
(int row, Attribute<?> attribute) int
int
indexOf
(Entity.Key primaryKey) 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 value of -1 means all rows should be fetchedonInsert()
Specifies whether the current sort order is used as a basis for the query order by clause.Returns whether the values of hidden columns are included when querying datavoid
refresh()
Refreshes the items in this table model, according to the underlying conditionvoid
refresh
(Collection<Entity.Key> keys) Refreshes the entities with the given keys by re-selecting them from the underlying database.void
replace
(ForeignKey foreignKey, Collection<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.void
replace
(Collection<Entity> entities) Replaces the given entities in this table modelvoid
Saves any user preferences.void
select
(Collection<Entity.Key> keys) Selects entities according to the primary keys inprimaryKeys
void
setVisibleColumns
(Attribute<?>... attributes) Arranges the column model so that only the given columns are visible and in the given ordervoid
setVisibleColumns
(List<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
EntityType entityType()- Returns:
- the type of the entity this table model is based on
-
connectionProvider
EntityConnectionProvider connectionProvider()- Returns:
- the connection provider used by this table model
-
entities
Entities entities()- Returns:
- the underlying domain entities
-
entityDefinition
EntityDefinition entityDefinition()- Returns:
- the definition of the underlying entity
-
editModel
- Type Parameters:
C
- the edit model type Returns theEntityEditModel
associated with this table model- Returns:
- the edit model associated with this table model
-
replace
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<Attribute<?>> conditionModel()- Returns:
- the
EntityTableConditionModel
instance used by this table model
-
editable
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:
-
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:
-
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
Returns the Value controlling the maximum number of rows to fetch via the underlying query the next time this table model is refreshed, a value of -1 means all rows should be fetched- Returns:
- the value controlling the limit
-
queryHiddenColumns
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
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
Deletes the selected entities- Throws:
DatabaseException
- in case of a database exceptionCancelException
- 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
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
State editEvents()- Returns:
- the state controlling whether this table model handles entity edit events, by replacing foreign key values
- See Also:
-
onInsert
Value<EntityTableModel.OnInsert> onInsert()- Returns:
- the Value controlling the action to perform when entities are inserted via the associated edit model
- See Also:
-
removeDeleted
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
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
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
- 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_PREFERENCES
is set to 'false', calling this method has no effect. -
setVisibleColumns
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:
refresh
in interfaceFilteredModel<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
TableSelectionModel<Entity> selectionModel()- Returns:
- the
TableSelectionModel
-
conditionChanged
StateObserver conditionChanged()- Returns:
- a StateObserver indicating if the search condition has changed since last refresh
-
addSelectionListener
- Parameters:
listener
- notified when the selection changes in the underlying selection model
-