4 package eu
.etaxonomy
.taxeditor
.ui
.section
;
6 import java
.util
.Arrays
;
7 import java
.util
.EnumSet
;
8 import java
.util
.Observable
;
9 import java
.util
.Observer
;
11 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
12 import eu
.etaxonomy
.cdm
.model
.common
.IIdentifiableEntity
;
13 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.permission
.CRUD
;
14 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
15 import eu
.etaxonomy
.taxeditor
.store
.LoginManager
;
16 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
17 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
18 import eu
.etaxonomy
.taxeditor
.ui
.element
.ToggleableTextElement
;
24 public abstract class AbstractIdentifiableEntityDetailElement
<T
extends IIdentifiableEntity
> extends
25 AbstractCdmDetailElement
<T
> implements Observer
{
30 private static final EnumSet
<CRUD
> UPDATE
= EnumSet
.of(CRUD
.UPDATE
);
31 protected ToggleableTextElement toggleable_cache
;
33 public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory
, ICdmFormElement formElement
) {
34 super(formFactory
, formElement
);
35 updateToggleableCacheState();
39 public void updateToggleableCacheField() {
40 if (!getEntity().isProtectedTitleCache()) {
41 toggleable_cache
.setText(getEntity().generateTitle());
45 protected void handleToggleableCacheField() {
46 boolean pushedState
= toggleable_cache
.getState();
48 getEntity().setTitleCache(toggleable_cache
.getText(), pushedState
);
49 setIrrelevant(pushedState
, Arrays
.asList(new Object
[] { toggleable_cache
}));
50 updateToggleableCacheField();
54 * @see java.util.Observer#update(java.util.Observable, java.lang.Object)
57 public void update(Observable o
, Object arg
){
58 if(o
instanceof LoginManager
){
59 updateToggleableCacheState();
64 private void updateToggleableCacheState() {
65 if(toggleable_cache
!= null){
66 toggleable_cache
.setEnabled(getEntity() != null && CdmStore
.currentAuthentiationHasPermission((CdmBase
) getEntity(), UPDATE
));
71 public void setEntity(T entity
) {
72 super.setEntity(entity
);
73 updateToggleableCacheState();