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
.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
;
23 public abstract class AbstractIdentifiableEntityDetailElement
<T
extends IIdentifiableEntity
> extends
24 AbstractCdmDetailElement
<T
> {
29 private static final EnumSet
<CRUD
> UPDATE
= EnumSet
.of(CRUD
.UPDATE
);
30 protected ToggleableTextElement toggleable_cache
;
31 protected boolean isAdvancedView
;
33 public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory
, ICdmFormElement formElement
) {
34 super(formFactory
, formElement
);
35 updateToggleableCacheState();
36 initIsAdvancedDetailsView();
40 public void updateToggleableCacheField() {
41 if (toggleable_cache
!= null){
42 if (!getEntity().isProtectedTitleCache()) {
43 toggleable_cache
.setText(getEntity().generateTitle());
48 protected void handleToggleableCacheField() {
49 boolean pushedState
= toggleable_cache
.getState();
51 getEntity().setTitleCache(toggleable_cache
.getText(), pushedState
);
52 setIrrelevant(pushedState
, Arrays
.asList(new Object
[] { toggleable_cache
}));
53 updateToggleableCacheField();
58 protected void updateControlStates(){
59 super.updateControlStates();
60 updateToggleableCacheState();
64 private void updateToggleableCacheState() {
65 if(toggleable_cache
!= null){
66 toggleable_cache
.setEnabled(getEntity() != null && CdmStore
.currentAuthentiationHasPermission((CdmBase
) getEntity(), UPDATE
));
69 protected void initIsAdvancedDetailsView(){
70 if(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_SIMPLE_NAME_DETAILS_SECTION
)){
71 isAdvancedView
= false;
73 isAdvancedView
= true;