Package de.xima.fc.gui.model.data
Class EntityListModel<T extends ITransferableEntity>
- java.lang.Object
-
- de.xima.fc.gui.common.utils.msg.I18nUtils
-
- de.xima.fc.gui.common.utils.msg.MessageUtils
-
- de.xima.fc.gui.common.utils.msg.AMessaging
-
- de.xima.fc.gui.model.data.EntityListModel<T>
-
- All Implemented Interfaces:
IEntityListModel<T>,IUpdatable,Serializable
- Direct Known Subclasses:
EntityListModelSelectByView,ExternalFormsBean.EntityListModelImpl,ProjectBean.EntityListModelImpl,SystemMessagesBean.EntityListModelImpl
public class EntityListModel<T extends ITransferableEntity> extends AMessaging implements IEntityListModel<T>
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected List<T>allprotected Class<T>entityClassprotected List<T>filteredprotected StringglobalFilterprotected booleanhasAddNewEntityprotected List<T>markedprotected de.xima.cmn.criteria.QueryCriteriaManagerqcmprotected Tselected
-
Constructor Summary
Constructors Constructor Description EntityListModel(Class<T> entityClass, de.xima.cmn.criteria.QueryCriteriaManager qcm)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddMarked(T entity)Adds the given entity to theListof marked entitiesvoidaddNew()Sets the currently selected model to a new model.voidcreate()Stringdelete()Deletes the currently selected model from the database.Stringdelete(String targetView)Deprecated.StringdeleteEntity(String targetView, T entity)Same asIEntityListModel.delete(String), but takes the model to be deleted as an argument instead of deleting the currently selected model.StringdeleteEntity(T entity)Same asIEntityListModel.delete(), but takes the model to be deleted as an argument instead of deleting the currently selected model.voiddeleteMarkedEntities()Deletes all marked entitiesIEntityContextec()protected List<T>fetchAll()Fetches all available entities.List<T>getAll()List<T>getAllPlusNew()IGenericDao<T>getDao()List<T>getFiltered()StringgetGlobalFilter()List<T>getMarked()protected static StringgetName(de.xima.cmn.dao.interfaces.IEntity<Long> entity)TgetNew()TgetSelected()booleanhasEntity()protected booleanisDetached(de.xima.cmn.dao.interfaces.IEntity<Long> entity)booleanisEmptyList()booleanisMarkedDeletable()booleanisNew()voidloadLazyData()Can be overriden to initialize lazily loaded fields on the entity.voidonRowSelect(org.primefaces.event.SelectEvent<?> event)voidonRowSelectCheckbox(org.primefaces.event.SelectEvent<?> event)voidonRowUnselectCheckbox(org.primefaces.event.UnselectEvent<?> event)voidonToggleSelect(org.primefaces.event.ToggleSelectEvent event)protected booleanperformDelete(T entity)voidremoveMarked(T entity)Removes the given entity from theListof marked entitiesvoidsave()Saves the currently selected model to the database.voidsave(boolean addSuccessMessage, boolean addErrorMessage)protected voidselectDefault()Called when no item is selected.voidsetFiltered(List<T> filtered)Sets the list of filtered models.voidsetGlobalFilter(String globalFilter)voidsetHasAddNewEntity(boolean isNewEntity)voidsetMarked(List<T> marked)Sets the list of marked entitiesvoidsetSelected(T selected)Sets the currently selected model to the given model.voidsetSelectedFromMarked()If there is exactly one entity marked, makes it the selected onevoidupdate()voidupdateData()voidupdateSelected()Rereads the currently model from the database, discarding any local, unsaved changes.-
Methods inherited from class de.xima.fc.gui.common.utils.msg.MessageUtils
addErrorMsg, addErrorMsg, addErrorMsg, addErrorMsg, addErrorMsg, addErrorMsg, addErrorMsgFromString, addErrorMsgFromString, addErrorMsgToComponent, addErrorMsgToComponent, addErrorMsgToComponent, addErrorMsgToComponent, addErrorMsgToComponent, addErrorMsgToComponent, addInfoMsg, addInfoMsg, addInfoMsg, addInfoMsg, addInfoMsgFromString, addInfoMsgFromString, addInfoMsgToComponent, addInfoMsgToComponent, addInfoMsgToComponent, addInfoMsgToComponent, addMsg, addMsg, addMsg, addMsg, addMsgs, addMsgs, addMsgToComponent, addMsgToComponent, addWarnMsg, addWarnMsg, addWarnMsg, addWarnMsg, addWarnMsgFromString, addWarnMsgFromString, addWarnMsgToComponent, addWarnMsgToComponent, addWarnMsgToComponent, addWarnMsgToComponent, cleanErrorMsg, errorMsg, errorMsg, getErrorMessage, getNewErrorMsg, getNewErrorMsg, getNewErrorMsg, getNewInfoMsg, getNewInfoMsg, getNewMsg, getNewWarnMsg, getNewWarnMsg, msg
-
-
-
-
Field Detail
-
hasAddNewEntity
protected boolean hasAddNewEntity
-
entityClass
protected final Class<T extends ITransferableEntity> entityClass
-
qcm
protected final de.xima.cmn.criteria.QueryCriteriaManager qcm
-
all
protected List<T extends ITransferableEntity> all
-
filtered
protected List<T extends ITransferableEntity> filtered
-
marked
protected List<T extends ITransferableEntity> marked
-
selected
protected T extends ITransferableEntity selected
-
globalFilter
protected String globalFilter
-
-
Method Detail
-
getAll
public List<T> getAll()
- Specified by:
getAllin interfaceIEntityListModel<T extends ITransferableEntity>- Returns:
- A list of all models, not including a #
IEntityListModel.isNew(), unsaved model.
-
getAllPlusNew
public List<T> getAllPlusNew()
- Specified by:
getAllPlusNewin interfaceIEntityListModel<T extends ITransferableEntity>- Returns:
- A list of all models, including the #
IEntityListModel.isNew(), unsaved model, if it exists.
-
updateData
public void updateData()
- Specified by:
updateDatain interfaceIUpdatable
-
selectDefault
protected void selectDefault()
Called when no item is selected. Should select the default item by calling #setSelected(ITransferableEntity). Defaults to selecting the first item; or a new item if no items exists. Override for custom behavior.
-
fetchAll
protected List<T> fetchAll()
Fetches all available entities. By default, this simple reads all entities matching theQueryCriteriaManagerprovided in the constructor. Override this for custom logic. If you choose to override this, you may providenullfor theQueryCriteriaManager, if you do not call this super method and do not attempt to use it yourself.- Returns:
- List
All available entities. The order of the returned list is preserved.
-
addNew
public void addNew()
Description copied from interface:IEntityListModelSets the currently selected model to a new model. A new model is not yet persisted in the database and exists only in memory.- Specified by:
addNewin interfaceIEntityListModel<T extends ITransferableEntity>
-
getNew
public T getNew()
-
create
public void create()
-
update
public void update()
-
save
public void save(boolean addSuccessMessage, boolean addErrorMessage)
-
save
public void save()
Description copied from interface:IEntityListModelSaves the currently selected model to the database. If itIEntityListModel.isNew(), creates a new entry in the database, otherwise updates the existing entry.- Specified by:
savein interfaceIEntityListModel<T extends ITransferableEntity>
-
getSelected
public T getSelected()
- Specified by:
getSelectedin interfaceIEntityListModel<T extends ITransferableEntity>- Returns:
- The currently selected model. A new model if none is selected.
-
getGlobalFilter
public String getGlobalFilter()
-
setGlobalFilter
public void setGlobalFilter(String globalFilter)
-
loadLazyData
public void loadLazyData()
Description copied from interface:IEntityListModelCan be overriden to initialize lazily loaded fields on the entity. By default, does not load any lazy data.- Specified by:
loadLazyDatain interfaceIEntityListModel<T extends ITransferableEntity>
-
setSelected
public void setSelected(T selected)
Description copied from interface:IEntityListModelSets the currently selected model to the given model. If the given model exists in the database but is not currently managed by an entity manager, rereads the model from the database. Thus theIEntityListModel.getSelected()model may not refer to the same instance as the given model.- Specified by:
setSelectedin interfaceIEntityListModel<T extends ITransferableEntity>- Parameters:
selected- The model to be selected.
-
setSelectedFromMarked
public void setSelectedFromMarked()
If there is exactly one entity marked, makes it the selected one- Specified by:
setSelectedFromMarkedin interfaceIEntityListModel<T extends ITransferableEntity>
-
getFiltered
public List<T> getFiltered()
- Specified by:
getFilteredin interfaceIEntityListModel<T extends ITransferableEntity>- Returns:
- A subset of
IEntityListModel.getAll(), with some models excluded according to some filter criterion.
-
setFiltered
public void setFiltered(List<T> filtered)
Description copied from interface:IEntityListModelSets the list of filtered models. This should be subset ofIEntityListModel.getAll().- Specified by:
setFilteredin interfaceIEntityListModel<T extends ITransferableEntity>- Parameters:
filtered- List of filtered models to set.
-
getMarked
public List<T> getMarked()
- Specified by:
getMarkedin interfaceIEntityListModel<T extends ITransferableEntity>- Returns:
Listof entities that have been marked (i.e. for further processing)
-
setMarked
public void setMarked(List<T> marked)
Description copied from interface:IEntityListModelSets the list of marked entities- Specified by:
setMarkedin interfaceIEntityListModel<T extends ITransferableEntity>- Parameters:
marked-Listof entities to be marked
-
addMarked
public void addMarked(T entity)
Description copied from interface:IEntityListModelAdds the given entity to theListof marked entities- Specified by:
addMarkedin interfaceIEntityListModel<T extends ITransferableEntity>- Parameters:
entity- to be added
-
removeMarked
public void removeMarked(T entity)
Description copied from interface:IEntityListModelRemoves the given entity from theListof marked entities- Specified by:
removeMarkedin interfaceIEntityListModel<T extends ITransferableEntity>- Parameters:
entity- to be removed
-
isNew
public boolean isNew()
- Specified by:
isNewin interfaceIEntityListModel<T extends ITransferableEntity>- Returns:
- Whether the currently selected model is new, ie. whether it is persisted in the database or exists only in memory.
-
updateSelected
public void updateSelected()
Description copied from interface:IEntityListModelRereads the currently model from the database, discarding any local, unsaved changes. Does nothing iff the currently selected modelIEntityListModel.isNew().- Specified by:
updateSelectedin interfaceIEntityListModel<T extends ITransferableEntity>
-
isEmptyList
public boolean isEmptyList()
- Specified by:
isEmptyListin interfaceIEntityListModel<T extends ITransferableEntity>- Returns:
trueiffIEntityListModel.getAll()is empty.
-
hasEntity
public boolean hasEntity()
- Specified by:
hasEntityin interfaceIEntityListModel<T extends ITransferableEntity>- Returns:
trueiff not #IEntityListModel.isEmptyList()or the currently selected modelIEntityListModel.isNew().
-
setHasAddNewEntity
public void setHasAddNewEntity(boolean isNewEntity)
-
getDao
public IGenericDao<T> getDao()
-
delete
public String delete()
Description copied from interface:IEntityListModelDeletes the currently selected model from the database. If the currently selected modelIEntityListModel.isNew(), does nothing.- Specified by:
deletein interfaceIEntityListModel<T extends ITransferableEntity>- Returns:
- A view ID of the page to show after the model was deleted.
-
ec
public IEntityContext ec()
-
isDetached
protected boolean isDetached(de.xima.cmn.dao.interfaces.IEntity<Long> entity)
-
deleteEntity
public String deleteEntity(T entity)
Description copied from interface:IEntityListModelSame asIEntityListModel.delete(), but takes the model to be deleted as an argument instead of deleting the currently selected model.- Specified by:
deleteEntityin interfaceIEntityListModel<T extends ITransferableEntity>- Parameters:
entity- The model to be deleted.- Returns:
- A view ID of the page to show after the model was deleted.
-
deleteEntity
public String deleteEntity(String targetView, T entity)
Description copied from interface:IEntityListModelSame asIEntityListModel.delete(String), but takes the model to be deleted as an argument instead of deleting the currently selected model.- Specified by:
deleteEntityin interfaceIEntityListModel<T extends ITransferableEntity>- Parameters:
targetView- The name of a view whose view ID is returned after this operation completes successfully. Can also be a relative path, in which case that path is returned.entity- The model to be deleted.- Returns:
- A view ID of the page to show after the model was deleted.
-
isMarkedDeletable
public boolean isMarkedDeletable()
- Specified by:
isMarkedDeletablein interfaceIEntityListModel<T extends ITransferableEntity>- Returns:
trueiff every single marked entity is deletable.falseotherwise
-
deleteMarkedEntities
public void deleteMarkedEntities()
Description copied from interface:IEntityListModelDeletes all marked entities- Specified by:
deleteMarkedEntitiesin interfaceIEntityListModel<T extends ITransferableEntity>
-
onRowSelect
public void onRowSelect(org.primefaces.event.SelectEvent<?> event)
- Specified by:
onRowSelectin interfaceIEntityListModel<T extends ITransferableEntity>
-
onRowSelectCheckbox
public void onRowSelectCheckbox(org.primefaces.event.SelectEvent<?> event)
- Specified by:
onRowSelectCheckboxin interfaceIEntityListModel<T extends ITransferableEntity>
-
onRowUnselectCheckbox
public void onRowUnselectCheckbox(org.primefaces.event.UnselectEvent<?> event)
- Specified by:
onRowUnselectCheckboxin interfaceIEntityListModel<T extends ITransferableEntity>
-
onToggleSelect
public void onToggleSelect(org.primefaces.event.ToggleSelectEvent event)
- Specified by:
onToggleSelectin interfaceIEntityListModel<T extends ITransferableEntity>
-
performDelete
protected boolean performDelete(T entity)
-
delete
@Deprecated public String delete(String targetView)
Deprecated.Description copied from interface:IEntityListModelDeletes the currently selected model from the database. If the currently selected modelIEntityListModel.isNew(), does nothing.- Specified by:
deletein interfaceIEntityListModel<T extends ITransferableEntity>- Parameters:
targetView- The name of a view whose view ID is returned after this operation completes successfully. Can also be a relative path, in which case that path is returned.- Returns:
- A view ID of the page to show after the model was deleted.
-
-