4 package eu
.etaxonomy
.taxeditor
.ui
.section
;
6 import java
.util
.Arrays
;
7 import java
.util
.EnumSet
;
9 import org
.eclipse
.swt
.SWT
;
10 import org
.eclipse
.swt
.widgets
.Display
;
12 import eu
.etaxonomy
.cdm
.common
.CdmUtils
;
13 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
14 import eu
.etaxonomy
.cdm
.model
.common
.IIdentifiableEntity
;
15 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.permission
.CRUD
;
16 import eu
.etaxonomy
.taxeditor
.preference
.IPreferenceKeys
;
17 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
18 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
19 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
20 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
21 import eu
.etaxonomy
.taxeditor
.ui
.element
.LayoutConstants
;
22 import eu
.etaxonomy
.taxeditor
.ui
.element
.ToggleableTextElement
;
28 public abstract class AbstractIdentifiableEntityDetailElement
<T
extends IIdentifiableEntity
> extends
29 AbstractCdmDetailElement
<T
> {
34 private static final EnumSet
<CRUD
> UPDATE
= EnumSet
.of(CRUD
.UPDATE
);
35 protected ToggleableTextElement toggleable_cache
;
36 protected boolean isAdvancedView
;
38 public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory
, ICdmFormElement formElement
) {
39 super(formFactory
, formElement
);
40 updateToggleableCacheState();
41 initIsAdvancedDetailsView();
45 public void updateToggleableCacheField() {
46 if (toggleable_cache
!= null){
47 if (!getEntity().isProtectedTitleCache()) {
48 toggleable_cache
.setText(getEntity().generateTitle());
53 protected void handleToggleableCacheField() {
54 boolean pushedState
= toggleable_cache
.getState();
56 getEntity().setTitleCache(toggleable_cache
.getText(), pushedState
);
57 setIrrelevant(pushedState
, Arrays
.asList(new Object
[] { toggleable_cache
}));
58 updateToggleableCacheField();
63 protected void updateControlStates(){
64 super.updateControlStates();
65 updateToggleableCacheState();
69 private void updateToggleableCacheState() {
70 if(toggleable_cache
!= null){
71 toggleable_cache
.setEnabled(getEntity() != null && CdmStore
.currentAuthentiationHasPermission((CdmBase
) getEntity(), UPDATE
));
74 protected void initIsAdvancedDetailsView(){
75 if(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_SIMPLE_NAME_DETAILS_SECTION
)){
76 isAdvancedView
= false;
78 isAdvancedView
= true;