Project

General

Profile

Download (1.92 KB) Statistics
| Branch: | Tag: | Revision:
1 e2eae039 n.hoffmann
/**
2 f72b4b32 Patric Plitzner
 *
3 e2eae039 n.hoffmann
 */
4
package eu.etaxonomy.taxeditor.ui.section;
5
6
import java.util.Arrays;
7 db88d819 Andreas Kohlbecker
import java.util.EnumSet;
8 e2eae039 n.hoffmann
9 23e15ade Patric Plitzner
import eu.etaxonomy.cdm.model.common.CdmBase;
10 e2eae039 n.hoffmann
import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
11 db88d819 Andreas Kohlbecker
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
12
import eu.etaxonomy.taxeditor.store.CdmStore;
13 78222507 n.hoffmann
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
14 dacb59c9 Patric Plitzner
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
15 78222507 n.hoffmann
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
16 e2eae039 n.hoffmann
17
/**
18
 * @author n.hoffmann
19
 *
20
 */
21
public abstract class AbstractIdentifiableEntityDetailElement<T extends IIdentifiableEntity> extends
22 d21fe505 Andreas Kohlbecker
        AbstractCdmDetailElement<T> {
23 f72b4b32 Patric Plitzner
24 db88d819 Andreas Kohlbecker
    /**
25
     *
26
     */
27
    private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
28 f72b4b32 Patric Plitzner
    protected ToggleableTextElement toggleable_cache;
29 e00acade Katja Luther
30 f72b4b32 Patric Plitzner
31
    public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
32
        super(formFactory, formElement);
33 db88d819 Andreas Kohlbecker
        updateToggleableCacheState();
34 e00acade Katja Luther
35 db88d819 Andreas Kohlbecker
36 f72b4b32 Patric Plitzner
    }
37
38 e11bc05e Katja Luther
39 f72b4b32 Patric Plitzner
    public void updateToggleableCacheField() {
40 1bfcc747 Katja Luther
        if (toggleable_cache != null){
41
            if (!getEntity().isProtectedTitleCache()) {
42
                toggleable_cache.setText(getEntity().generateTitle());
43
            }
44 f72b4b32 Patric Plitzner
        }
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 db88d819 Andreas Kohlbecker
55 d21fe505 Andreas Kohlbecker
56 db88d819 Andreas Kohlbecker
    @Override
57 d21fe505 Andreas Kohlbecker
    protected void updateControlStates(){
58
        super.updateControlStates();
59
        updateToggleableCacheState();
60 db88d819 Andreas Kohlbecker
    }
61
62
63
    private void updateToggleableCacheState() {
64
        if(toggleable_cache != null){
65 23e15ade Patric Plitzner
            toggleable_cache.setEnabled(getEntity() != null && CdmStore.currentAuthentiationHasPermission((CdmBase) getEntity(), UPDATE));
66 db88d819 Andreas Kohlbecker
        }
67
    }
68 e00acade Katja Luther
69 db88d819 Andreas Kohlbecker
70 e11bc05e Katja Luther
71 e2eae039 n.hoffmann
}