Revision 19ba9005
Added by Andreas Kohlbecker over 6 years ago
src/main/java/eu/etaxonomy/vaadin/mvp/AbstractCdmEditorPresenter.java | ||
---|---|---|
15 | 15 |
import org.springframework.context.event.EventListener; |
16 | 16 |
|
17 | 17 |
import eu.etaxonomy.cdm.api.service.IService; |
18 |
import eu.etaxonomy.cdm.cache.CdmEntityCache; |
|
19 |
import eu.etaxonomy.cdm.cache.EntityCache; |
|
18 | 20 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
19 | 21 |
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD; |
20 | 22 |
import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmAuthority; |
21 | 23 |
import eu.etaxonomy.cdm.service.CdmStore; |
22 | 24 |
import eu.etaxonomy.cdm.vaadin.event.EntityChangeEvent; |
23 | 25 |
import eu.etaxonomy.cdm.vaadin.security.UserHelper; |
26 |
import eu.etaxonomy.cdm.vaadin.view.name.CachingPresenter; |
|
24 | 27 |
import eu.etaxonomy.vaadin.mvp.event.EditorPreSaveEvent; |
25 | 28 |
import eu.etaxonomy.vaadin.mvp.event.EditorSaveEvent; |
26 | 29 |
|
... | ... | |
31 | 34 |
* @since Apr 5, 2017 |
32 | 35 |
* |
33 | 36 |
*/ |
34 |
public abstract class AbstractCdmEditorPresenter<DTO extends CdmBase, V extends ApplicationView<?>> extends AbstractEditorPresenter<DTO, V> { |
|
37 |
public abstract class AbstractCdmEditorPresenter<DTO extends CdmBase, V extends ApplicationView<?>> extends AbstractEditorPresenter<DTO, V> |
|
38 |
implements CachingPresenter { |
|
35 | 39 |
|
36 | 40 |
private static final long serialVersionUID = 2218185546277084261L; |
37 | 41 |
|
... | ... | |
44 | 48 |
protected EnumSet<CRUD> crud = null; |
45 | 49 |
|
46 | 50 |
|
51 |
private CdmEntityCache cache = null; |
|
52 |
|
|
47 | 53 |
public AbstractCdmEditorPresenter() { |
48 | 54 |
super(); |
49 | 55 |
logger.trace(this._toString() + " constructor"); |
... | ... | |
63 | 69 |
@Override |
64 | 70 |
protected DTO loadBeanById(Object identifier) { |
65 | 71 |
|
72 |
DTO cdmEntitiy; |
|
66 | 73 |
if(identifier != null) { |
67 | 74 |
Integer integerID = (Integer)identifier; |
68 | 75 |
// CdmAuthority is needed before the bean is loaded into the session. |
69 | 76 |
// otherwise adding the authority to the user would cause a flush |
70 | 77 |
guaranteePerEntityCRUDPermissions(integerID); |
71 |
return loadCdmEntityById(integerID);
|
|
78 |
cdmEntitiy = loadCdmEntityById(integerID);
|
|
72 | 79 |
} else { |
73 |
DTO cdmEntitiy = loadCdmEntityById(null);
|
|
80 |
cdmEntitiy = loadCdmEntityById(null); |
|
74 | 81 |
if(cdmEntitiy != null){ |
75 | 82 |
guaranteePerEntityCRUDPermissions(cdmEntitiy); |
76 | 83 |
} |
77 |
return cdmEntitiy; |
|
78 | 84 |
} |
79 | 85 |
|
86 |
cache = new CdmEntityCache(cdmEntitiy); |
|
87 |
|
|
88 |
return cdmEntitiy; |
|
80 | 89 |
} |
81 | 90 |
|
82 | 91 |
|
... | ... | |
203 | 212 |
|
204 | 213 |
} |
205 | 214 |
|
215 |
/** |
|
216 |
* {@inheritDoc} |
|
217 |
*/ |
|
218 |
@Override |
|
219 |
public EntityCache getCache() { |
|
220 |
if(((AbstractPopupEditor)getView()).isBeanLoaded()){ |
|
221 |
return cache; |
|
222 |
} else { |
|
223 |
return null; |
|
224 |
} |
|
225 |
} |
|
226 |
|
|
206 | 227 |
|
207 | 228 |
} |
Also available in: Unified diff
fix #7135 TeamOrPersonField allows selecting from existing Persons and Teams