M
- the type of EntityModel
used for detail modelsE
- the type of EntityEditModel
used by this EntityModel
T
- the type of EntityTableModel
used by this EntityModel
public interface EntityModel<M extends EntityModel<M,E,T>,E extends EntityEditModel,T extends EntityTableModel<E>> extends Refreshable, EntityDataProvider
EntityEditModel
and an EntityTableModel
.Modifier and Type | Field and Description |
---|---|
static PropertyValue<java.lang.Boolean> |
FILTER_ON_MASTER_INSERT
Specifies whether or not a table model should be automatically filtered when an insert is performed
in a master model, using the inserted entity.
|
static PropertyValue<java.lang.Boolean> |
USE_CLIENT_PREFERENCES
Specifies whether or not the client should save and apply user preferences
Value type: Boolean Default value: true if required JSON library is found on classpath, false otherwise |
Modifier and Type | Method and Description |
---|---|
void |
addAfterRefreshListener(EventListener listener) |
void |
addBeforeRefreshListener(EventListener listener) |
M |
addDetailModel(M detailModel)
Adds the given detail model to this model, sets this model as the master model of the
given detail model via
setMasterModel(EntityModel) , a side-effect if the detail model contains
a table model is that it is configured so that a query condition is required for it to show
any data, via EntityTableModel.getQueryConditionRequiredState() |
void |
addDetailModels(M... detailModels)
Adds the given detail model to this model, sets this model as the master model of the
given detail models via
setMasterModel(EntityModel) , a side-effect if the detail model contains
a table model is that it is configured so that a query condition is required for it to show
any data, via EntityTableModel.getQueryConditionRequiredState() |
void |
addLinkedDetailModel(M detailModel)
Adds the given model to the currently linked detail models.
|
void |
addLinkedDetailModelAddedListener(EventDataListener<M> listener) |
void |
addLinkedDetailModelRemovedListener(EventDataListener<M> listener) |
void |
clearDetailModels()
Clears the detail models.
|
boolean |
containsDetailModel(java.lang.Class<? extends M> modelClass) |
boolean |
containsDetailModel(M detailModel) |
boolean |
containsDetailModel(java.lang.String entityId) |
boolean |
containsTableModel() |
M |
getDetailModel(java.lang.Class<? extends M> modelClass)
Returns the first detail model of the given type
|
M |
getDetailModel(java.lang.String entityId)
Returns a detail model of the given type
|
ForeignKeyProperty |
getDetailModelForeignKey(M detailModel) |
java.util.Collection<M> |
getDetailModels() |
E |
getEditModel() |
java.util.Collection<M> |
getLinkedDetailModels() |
M |
getMasterModel() |
T |
getTableModel() |
void |
initialize(ForeignKeyProperty foreignKeyProperty,
java.util.List<Entity> foreignKeyValues)
Initializes this
EntityModel according to the given foreign key entities,
sets the appropriate property value in the EntityEditModel and filters the EntityTableModel |
void |
initialize(java.lang.String foreignKeyEntityId,
java.util.List<Entity> foreignKeyValues)
Initializes this
EntityModel according to the given foreign key entities. |
boolean |
isFilterOnMasterInsert() |
void |
refreshDetailModels()
Refreshes the detail models.
|
void |
removeAfterRefreshListener(EventListener listener) |
void |
removeBeforeRefreshListener(EventListener listener) |
void |
removeLinkedDetailModel(M detailModel)
Removes the given model from the currently linked detail models.
|
void |
removeLinkedDetailModelAddedListener(EventDataListener listener) |
void |
removeLinkedDetailModelRemovedListener(EventDataListener listener) |
void |
savePreferences()
Saves any user preferences
|
void |
setDetailModelForeignKey(M detailModel,
java.lang.String foreignKeyPropertyId)
Indicates that the given detail model is based on the foreign key with the given ID, this becomes
practical when a detail model is based on an entity which contains multiple foreign keys to the
same master entity.
|
void |
setFilterOnMasterInsert(boolean filterDetailOnInsert) |
void |
setMasterModel(M entityModel)
Sets the model serving as master model
|
clear, refresh
getConnectionProvider, getEntityId
static final PropertyValue<java.lang.Boolean> FILTER_ON_MASTER_INSERT
static final PropertyValue<java.lang.Boolean> USE_CLIENT_PREFERENCES
E getEditModel()
EntityEditModel
instance used by this EntityModel
T getTableModel()
EntityTableModel
, null if none is specifiedboolean containsTableModel()
EntityModel
contains a EntityTableModel
java.util.Collection<M> getLinkedDetailModels()
void addLinkedDetailModel(M detailModel)
detailModel
- links the given detail model to this modelvoid removeLinkedDetailModel(M detailModel)
detailModel
- unlinks the given detail model from this modelvoid initialize(java.lang.String foreignKeyEntityId, java.util.List<Entity> foreignKeyValues)
EntityModel
according to the given foreign key entities.
It sets the value for the first available foreign key property representing the given entityId
in the EntityEditModel
and sets the search values in the EntityTableModel
.foreignKeyEntityId
- the ID of the master entityforeignKeyValues
- the master entitiesvoid initialize(ForeignKeyProperty foreignKeyProperty, java.util.List<Entity> foreignKeyValues)
EntityModel
according to the given foreign key entities,
sets the appropriate property value in the EntityEditModel
and filters the EntityTableModel
foreignKeyProperty
- the ID of the foreign keyforeignKeyValues
- the foreign key valuesvoid setMasterModel(M entityModel)
entityModel
- the master entity modeljava.lang.IllegalStateException
- if the master model has already been setM getMasterModel()
void addDetailModels(M... detailModels)
setMasterModel(EntityModel)
, a side-effect if the detail model contains
a table model is that it is configured so that a query condition is required for it to show
any data, via EntityTableModel.getQueryConditionRequiredState()
detailModels
- the detail models to addM addDetailModel(M detailModel)
setMasterModel(EntityModel)
, a side-effect if the detail model contains
a table model is that it is configured so that a query condition is required for it to show
any data, via EntityTableModel.getQueryConditionRequiredState()
detailModel
- the detail modelboolean containsDetailModel(java.lang.Class<? extends M> modelClass)
modelClass
- the detail model classboolean containsDetailModel(java.lang.String entityId)
entityId
- the entity IDboolean containsDetailModel(M detailModel)
detailModel
- the detail modelM getDetailModel(java.lang.Class<? extends M> modelClass)
modelClass
- the type of the required EntityModel
entityModelClass
java.lang.IllegalArgumentException
- in case a model is not foundM getDetailModel(java.lang.String entityId)
entityId
- the entity ID of the required EntityModelentityModelClass
java.lang.IllegalArgumentException
- in case no detail model for the given entityId is foundjava.util.Collection<M> getDetailModels()
void setDetailModelForeignKey(M detailModel, java.lang.String foreignKeyPropertyId)
foreignKeyPropertyId
is null the association is removed.detailModel
- the detail modelforeignKeyPropertyId
- the foreign key property IDjava.lang.IllegalArgumentException
- in case this EntityModel does not contain the given detail modelinitialize(ForeignKeyProperty, java.util.List)
ForeignKeyProperty getDetailModelForeignKey(M detailModel)
detailModel
- the detail modelForeignKeyProperty
the given detail model is based on, null if none has been definedvoid refreshDetailModels()
void clearDetailModels()
boolean isFilterOnMasterInsert()
FILTER_ON_MASTER_INSERT
void setFilterOnMasterInsert(boolean filterDetailOnInsert)
filterDetailOnInsert
- if true then the table model is automatically filtered when insert is performed in a master modelFILTER_ON_MASTER_INSERT
void addBeforeRefreshListener(EventListener listener)
listener
- a listener to be notified before a refresh is performedvoid removeBeforeRefreshListener(EventListener listener)
listener
- the listener to removevoid addAfterRefreshListener(EventListener listener)
listener
- a listener to be notified each time a refresh has been performedvoid removeAfterRefreshListener(EventListener listener)
listener
- the listener to removevoid addLinkedDetailModelAddedListener(EventDataListener<M> listener)
listener
- a listener to be notified each time a linked detail model is addedvoid removeLinkedDetailModelAddedListener(EventDataListener listener)
listener
- a listener to be removedvoid addLinkedDetailModelRemovedListener(EventDataListener<M> listener)
listener
- a listener to be notified each time a linked detail model is removedvoid removeLinkedDetailModelRemovedListener(EventDataListener listener)
listener
- a listener to be removedvoid savePreferences()