ref #3836: add only recommended modifiers to modifier combo
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / AbstractIdentifiableEntityDetailElement.java
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 }