M
- the type of DefaultEntityModel
used for detail modelsE
- the type of AbstractEntityEditModel
used by this EntityModel
T
- the type of EntityTableModel
used by this EntityModel
public class DefaultEntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>> extends Object implements EntityModel<M,E,T>
USE_CLIENT_PREFERENCES
Constructor and Description |
---|
DefaultEntityModel(E editModel)
Instantiates a new DefaultEntityModel, without a table model
|
DefaultEntityModel(T tableModel)
Instantiates a new DefaultEntityModel
|
Modifier and Type | Method and Description |
---|---|
Collection<M> |
activeDetailModels() |
void |
addActiveDetailModelsListener(EventDataListener<Collection<M>> listener) |
<L extends DetailModelLink<M,E,T>> |
addDetailModel(L detailModelLink)
Adds the given detail model to this model, 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.queryConditionRequiredState() |
ForeignKeyDetailModelLink<M,E,T> |
addDetailModel(M detailModel)
Adds the given detail model to this model, 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.queryConditionRequiredState() . |
ForeignKeyDetailModelLink<M,E,T> |
addDetailModel(M detailModel,
ForeignKey foreignKey)
Adds the given detail model to this model, 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.queryConditionRequiredState()
Specify the foreign key in case the detail model is based on an entity which contains multiple foreign keys to the
same master entity. |
void |
addDetailModels(M... detailModels)
Adds the given detail model to this model, 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.queryConditionRequiredState() . |
EntityConnectionProvider |
connectionProvider() |
boolean |
containsDetailModel(Class<? extends M> modelClass) |
boolean |
containsDetailModel(EntityType entityType) |
boolean |
containsDetailModel(M detailModel) |
boolean |
containsTableModel() |
<T extends M> |
detailModel(Class<? extends M> modelClass)
Returns the first detail model of the given type
|
M |
detailModel(EntityType entityType)
Returns a detail model of the given type
|
<L extends DetailModelLink<M,E,T>> |
detailModelLink(M detailModel) |
Collection<M> |
detailModels() |
E |
editModel() |
Entities |
entities() |
EntityType |
entityType() |
void |
removeActiveDetailModelsListener(EventDataListener<Collection<M>> listener) |
void |
savePreferences()
Saves any user preferences for this model, its table model and each detail model.
|
T |
tableModel() |
String |
toString() |
public DefaultEntityModel(E editModel)
editModel
- the edit modelpublic DefaultEntityModel(T tableModel)
tableModel
- the table modelpublic final String toString()
public final EntityType entityType()
entityType
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
public final EntityConnectionProvider connectionProvider()
connectionProvider
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
public final Entities entities()
entities
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
public final E editModel()
editModel
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
EntityEditModel
instance used by this EntityModel
public final T tableModel()
tableModel
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
EntityTableModel
, null if none is specifiedpublic final boolean containsTableModel()
containsTableModel
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
EntityModel
contains a EntityTableModel
@SafeVarargs public final void addDetailModels(M... detailModels)
EntityModel
EntityTableModel.queryConditionRequiredState()
.
Note that each detail model is associated with the first foreign key found referencing this models entity.addDetailModels
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
detailModels
- the detail models to addpublic final ForeignKeyDetailModelLink<M,E,T> addDetailModel(M detailModel)
EntityModel
EntityTableModel.queryConditionRequiredState()
.
Note that the detail model is associated with the first foreign key found referencing this models entity.addDetailModel
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
detailModel
- the detail modelForeignKeyDetailModelLink
public final ForeignKeyDetailModelLink<M,E,T> addDetailModel(M detailModel, ForeignKey foreignKey)
EntityModel
EntityTableModel.queryConditionRequiredState()
Specify the foreign key in case the detail model is based on an entity which contains multiple foreign keys to the
same master entity.addDetailModel
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
detailModel
- the detail modelforeignKey
- the foreign key to base the detail model onForeignKeyDetailModelLink
public final <L extends DetailModelLink<M,E,T>> L addDetailModel(L detailModelLink)
EntityModel
EntityTableModel.queryConditionRequiredState()
addDetailModel
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
L
- the DetailModelLink
typedetailModelLink
- the DetailModelLink
to addDetailModelLink
public final boolean containsDetailModel(Class<? extends M> modelClass)
containsDetailModel
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
modelClass
- the detail model classpublic final boolean containsDetailModel(EntityType entityType)
containsDetailModel
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
entityType
- the entityTypepublic final boolean containsDetailModel(M detailModel)
containsDetailModel
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
detailModel
- the detail modelpublic final Collection<M> detailModels()
detailModels
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
public final <L extends DetailModelLink<M,E,T>> L detailModelLink(M detailModel)
detailModelLink
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
L
- the DetailModelLink
typedetailModel
- the detail modelpublic final Collection<M> activeDetailModels()
activeDetailModels
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
public final void addActiveDetailModelsListener(EventDataListener<Collection<M>> listener)
addActiveDetailModelsListener
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
listener
- notified each time the active detail models changepublic final void removeActiveDetailModelsListener(EventDataListener<Collection<M>> listener)
removeActiveDetailModelsListener
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
listener
- the listener to removepublic final <T extends M> T detailModel(Class<? extends M> modelClass)
EntityModel
detailModel
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
T
- the model typemodelClass
- the type of the required EntityModel
entityModelClass
public final M detailModel(EntityType entityType)
EntityModel
detailModel
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
entityType
- the entityType of the required EntityModelentityModelClass
public void savePreferences()
EntityModel
EntityModel.USE_CLIENT_PREFERENCES
is set to 'false', calling this method has no effect.
Remember to call super.savePreferences() when overriding.savePreferences
in interface EntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>