Project

General

Profile

« Previous | Next » 

Revision 19ba9005

Added by Andreas Kohlbecker over 6 years ago

fix #7135 TeamOrPersonField allows selecting from existing Persons and Teams

View differences:

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