Project

General

Profile

Download (1.86 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 *
3
 */
4
package eu.etaxonomy.taxeditor.ui.section;
5

    
6
import java.util.Arrays;
7
import java.util.EnumSet;
8

    
9
import eu.etaxonomy.cdm.model.common.CdmBase;
10
import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
11
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
12
import eu.etaxonomy.taxeditor.store.CdmStore;
13
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
14
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
15
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
16

    
17
/**
18
 * @author n.hoffmann
19
 *
20
 */
21
public abstract class AbstractIdentifiableEntityDetailElement<T extends IIdentifiableEntity> extends
22
        AbstractCdmDetailElement<T> {
23

    
24
    /**
25
     *
26
     */
27
    private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
28
    protected ToggleableTextElement toggleable_cache;
29

    
30
    public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
31
        super(formFactory, formElement);
32
        updateToggleableCacheState();
33

    
34
    }
35

    
36
    public void updateToggleableCacheField() {
37
        if (!getEntity().isProtectedTitleCache()) {
38
            toggleable_cache.setText(getEntity().generateTitle());
39
        }
40
    }
41

    
42
    protected void handleToggleableCacheField() {
43
        boolean pushedState = toggleable_cache.getState();
44

    
45
        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
46
        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
47
        updateToggleableCacheField();
48
    }
49

    
50

    
51
    @Override
52
    protected void updateControlStates(){
53
        super.updateControlStates();
54
        updateToggleableCacheState();
55
    }
56

    
57

    
58
    private void updateToggleableCacheState() {
59
        if(toggleable_cache != null){
60
            toggleable_cache.setEnabled(getEntity() != null && CdmStore.currentAuthentiationHasPermission((CdmBase) getEntity(), UPDATE));
61
        }
62
    }
63

    
64
}
(5-5/8)