4 package eu
.etaxonomy
.taxeditor
.ui
.section
;
6 import java
.util
.Arrays
;
7 import java
.util
.EnumSet
;
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
;
21 public abstract class AbstractIdentifiableEntityDetailElement
<T
extends IIdentifiableEntity
> extends
22 AbstractCdmDetailElement
<T
> {
27 private static final EnumSet
<CRUD
> UPDATE
= EnumSet
.of(CRUD
.UPDATE
);
28 protected ToggleableTextElement toggleable_cache
;
30 public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory
, ICdmFormElement formElement
) {
31 super(formFactory
, formElement
);
32 updateToggleableCacheState();
36 public void updateToggleableCacheField() {
37 if (!getEntity().isProtectedTitleCache()) {
38 toggleable_cache
.setText(getEntity().generateTitle());
42 protected void handleToggleableCacheField() {
43 boolean pushedState
= toggleable_cache
.getState();
45 getEntity().setTitleCache(toggleable_cache
.getText(), pushedState
);
46 setIrrelevant(pushedState
, Arrays
.asList(new Object
[] { toggleable_cache
}));
47 updateToggleableCacheField();
52 protected void updateControlStates(){
53 super.updateControlStates();
54 updateToggleableCacheState();
58 private void updateToggleableCacheState() {
59 if(toggleable_cache
!= null){
60 toggleable_cache
.setEnabled(getEntity() != null && CdmStore
.currentAuthentiationHasPermission((CdmBase
) getEntity(), UPDATE
));