Project

General

Profile

Download (1.92 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

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

    
35

    
36
    }
37

    
38

    
39
    public void updateToggleableCacheField() {
40
        if (toggleable_cache != null){
41
            if (!getEntity().isProtectedTitleCache()) {
42
                toggleable_cache.setText(getEntity().generateTitle());
43
            }
44
        }
45
    }
46

    
47
    protected void handleToggleableCacheField() {
48
        boolean pushedState = toggleable_cache.getState();
49

    
50
        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
51
        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
52
        updateToggleableCacheField();
53
    }
54

    
55

    
56
    @Override
57
    protected void updateControlStates(){
58
        super.updateControlStates();
59
        updateToggleableCacheState();
60
    }
61

    
62

    
63
    private void updateToggleableCacheState() {
64
        if(toggleable_cache != null){
65
            toggleable_cache.setEnabled(getEntity() != null && CdmStore.currentAuthentiationHasPermission((CdmBase) getEntity(), UPDATE));
66
        }
67
    }
68

    
69

    
70

    
71
}
(5-5/9)