1 |
e2eae039
|
n.hoffmann
|
/**
|
2 |
f72b4b32
|
Patric Plitzner
|
*
|
3 |
e2eae039
|
n.hoffmann
|
*/
|
4 |
|
|
package eu.etaxonomy.taxeditor.ui.section;
|
5 |
|
|
|
6 |
|
|
import java.util.Arrays;
|
7 |
db88d819
|
Andreas Kohlbecker
|
import java.util.EnumSet;
|
8 |
e2eae039
|
n.hoffmann
|
|
9 |
23e15ade
|
Patric Plitzner
|
import eu.etaxonomy.cdm.model.common.CdmBase;
|
10 |
e2eae039
|
n.hoffmann
|
import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
|
11 |
db88d819
|
Andreas Kohlbecker
|
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
|
12 |
|
|
import eu.etaxonomy.taxeditor.store.CdmStore;
|
13 |
78222507
|
n.hoffmann
|
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
|
14 |
dacb59c9
|
Patric Plitzner
|
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
|
15 |
78222507
|
n.hoffmann
|
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
|
16 |
e2eae039
|
n.hoffmann
|
|
17 |
|
|
/**
|
18 |
|
|
* @author n.hoffmann
|
19 |
|
|
*
|
20 |
|
|
*/
|
21 |
|
|
public abstract class AbstractIdentifiableEntityDetailElement<T extends IIdentifiableEntity> extends
|
22 |
d21fe505
|
Andreas Kohlbecker
|
AbstractCdmDetailElement<T> {
|
23 |
f72b4b32
|
Patric Plitzner
|
|
24 |
db88d819
|
Andreas Kohlbecker
|
/**
|
25 |
|
|
*
|
26 |
|
|
*/
|
27 |
|
|
private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
|
28 |
f72b4b32
|
Patric Plitzner
|
protected ToggleableTextElement toggleable_cache;
|
29 |
e00acade
|
Katja Luther
|
|
30 |
f72b4b32
|
Patric Plitzner
|
|
31 |
|
|
public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
|
32 |
|
|
super(formFactory, formElement);
|
33 |
db88d819
|
Andreas Kohlbecker
|
updateToggleableCacheState();
|
34 |
e00acade
|
Katja Luther
|
|
35 |
db88d819
|
Andreas Kohlbecker
|
|
36 |
f72b4b32
|
Patric Plitzner
|
}
|
37 |
|
|
|
38 |
e11bc05e
|
Katja Luther
|
|
39 |
f72b4b32
|
Patric Plitzner
|
public void updateToggleableCacheField() {
|
40 |
1bfcc747
|
Katja Luther
|
if (toggleable_cache != null){
|
41 |
|
|
if (!getEntity().isProtectedTitleCache()) {
|
42 |
|
|
toggleable_cache.setText(getEntity().generateTitle());
|
43 |
|
|
}
|
44 |
f72b4b32
|
Patric Plitzner
|
}
|
45 |
|
|
}
|
46 |
|
|
|
47 |
|
|
protected void handleToggleableCacheField() {
|
48 |
|
|
boolean pushedState = toggleable_cache.getState();
|
49 |
|
|
|
50 |
|
|
getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
|
51 |
|
|
setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
|
52 |
|
|
updateToggleableCacheField();
|
53 |
|
|
}
|
54 |
db88d819
|
Andreas Kohlbecker
|
|
55 |
d21fe505
|
Andreas Kohlbecker
|
|
56 |
db88d819
|
Andreas Kohlbecker
|
@Override
|
57 |
d21fe505
|
Andreas Kohlbecker
|
protected void updateControlStates(){
|
58 |
|
|
super.updateControlStates();
|
59 |
|
|
updateToggleableCacheState();
|
60 |
db88d819
|
Andreas Kohlbecker
|
}
|
61 |
|
|
|
62 |
|
|
|
63 |
|
|
private void updateToggleableCacheState() {
|
64 |
|
|
if(toggleable_cache != null){
|
65 |
23e15ade
|
Patric Plitzner
|
toggleable_cache.setEnabled(getEntity() != null && CdmStore.currentAuthentiationHasPermission((CdmBase) getEntity(), UPDATE));
|
66 |
db88d819
|
Andreas Kohlbecker
|
}
|
67 |
|
|
}
|
68 |
e00acade
|
Katja Luther
|
|
69 |
db88d819
|
Andreas Kohlbecker
|
|
70 |
e11bc05e
|
Katja Luther
|
|
71 |
e2eae039
|
n.hoffmann
|
}
|