rename SHOW_NAME_IN_SOURCE to SHOW_NAMESPACE_IN_SOURCE in taxeditor
[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.preference.IPreferenceKeys;
13 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
14 import eu.etaxonomy.taxeditor.store.CdmStore;
15 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
16 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
17 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
18
19 /**
20 * @author n.hoffmann
21 *
22 */
23 public abstract class AbstractIdentifiableEntityDetailElement<T extends IIdentifiableEntity> extends
24 AbstractCdmDetailElement<T> {
25
26 /**
27 *
28 */
29 private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
30 protected ToggleableTextElement toggleable_cache;
31 protected boolean isAdvancedView ;
32
33 public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
34 super(formFactory, formElement);
35 updateToggleableCacheState();
36 initIsAdvancedDetailsView();
37
38 }
39
40
41 public void updateToggleableCacheField() {
42 if (toggleable_cache != null){
43 if (!getEntity().isProtectedTitleCache()) {
44 toggleable_cache.setText(getEntity().generateTitle());
45 }
46 }
47 }
48
49 protected void handleToggleableCacheField() {
50 boolean pushedState = toggleable_cache.getState();
51
52 getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
53 setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
54 updateToggleableCacheField();
55 }
56
57
58 @Override
59 protected void updateControlStates(){
60 super.updateControlStates();
61 updateToggleableCacheState();
62 }
63
64
65 private void updateToggleableCacheState() {
66 if(toggleable_cache != null){
67 toggleable_cache.setEnabled(getEntity() != null && CdmStore.currentAuthentiationHasPermission((CdmBase) getEntity(), UPDATE));
68 }
69 }
70 protected void initIsAdvancedDetailsView(){
71 if(PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION)){
72 isAdvancedView = false;
73 } else{
74 isAdvancedView = true;
75 }
76 }
77
78
79 }