merge-update from trunk
[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
8 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
9 import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
10 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
11 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
12
13 /**
14 * @author n.hoffmann
15 *
16 */
17 public abstract class AbstractIdentifiableEntityDetailElement<T extends IIdentifiableEntity> extends
18 AbstractCdmDetailElement<T> {
19
20 protected ToggleableTextElement toggleable_cache;
21
22 public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
23 super(formFactory, formElement);
24 }
25
26 public void updateToggleableCacheField() {
27 if (!getEntity().isProtectedTitleCache()) {
28 toggleable_cache.setText(getEntity().generateTitle());
29 }
30 }
31
32 protected void handleToggleableCacheField() {
33 boolean pushedState = toggleable_cache.getState();
34
35 getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
36 setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
37 updateToggleableCacheField();
38 }
39 }