ref #8385: better handling of distr preferences and term related preferences
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / NameDetailsViewAdminConfiguration.java
1 package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
2
3
4 import eu.etaxonomy.cdm.api.application.ICdmRepository;
5 import eu.etaxonomy.cdm.api.service.IPreferenceService;
6 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
7 import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
8 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
9 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
10 import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
11 import eu.etaxonomy.taxeditor.preference.NameDetailsConfigurator;
12 import eu.etaxonomy.taxeditor.preference.NameDetailsViewConfiguration;
13 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
14 import eu.etaxonomy.taxeditor.store.CdmStore;
15
16
17 public class NameDetailsViewAdminConfiguration extends NameDetailsViewConfiguration implements IE4AdminPreferencePage{
18
19 protected NameDetailsConfigurator createNameDetailsViewConfig() {
20
21 NameDetailsConfigurator config = new NameDetailsConfigurator(isSimpleDetailsViewActivated!= null? isSimpleDetailsViewActivated:false);
22
23 config.setAppendedPhraseActivated(isShowAppendedPhrase);
24 config.setAtomisedEpithetsActivated(isShowEpithets);
25 config.setAuthorshipSectionActivated(isShowAuthorship);
26 config.setAuthorCacheActivated(isShowAuthorCache);
27 config.setLSIDActivated(isShowLSID);
28 config.setNameApprobiationActivated(isShowNameApprobiation);
29 config.setNameCacheActivated(isShowNameCache);
30 config.setNameRelationsSectionActivated(isShowNameRelationship);
31 config.setNomenclaturalCodeActived(isShowNomenclaturalCode);
32 config.setNomenclaturalStatusSectionActivated(isShowNomenclaturalStatus);
33 config.setNomenclaturalReferenceSectionActivated(isShowNomenclaturalRef);
34 config.setProtologueActivated(isShowProtologue);
35 config.setRankActivated(isShowRank);
36 config.setTaxonSectionActivated(isShowTaxon);
37 config.setSecDetailsActivated(isSecDetailsActivated);
38 config.setSecEnabled(isSecEnabled);
39 config.setTypeDesignationSectionActivated(isShowTypeDesignation);
40 config.setHybridActivated(isShowHybrid);
41
42
43 return config;
44 }
45
46
47 @Override
48 public boolean performOk() {
49 if (!isApply()){
50 return true;
51 }
52 if (nameDetailsConfig == null){
53 return true;
54 }
55 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
56 if (controller == null){
57 return false;
58 }
59 IPreferenceService service = controller.getPreferenceService();
60 NameDetailsConfigurator config = createNameDetailsViewConfig();
61 String value = config.toString();
62
63 if (isSimpleDetailsViewActivated == null && isAllowOverride){
64 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.NameDetailsView));
65
66 return true;
67 }else if (isSimpleDetailsViewActivated == null){
68 value = null;
69 }
70 CdmPreference pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NameDetailsView, value);
71 pref.setAllowOverride(isAllowOverride);
72 service.set(pref);
73 PreferencesUtil.updateDBPreferences();
74
75
76 return true;
77 }
78
79
80 @Override
81 public void getValues(){
82 isAdminPreference = true;
83 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
84 if (controller != null){
85 IPreferenceService service = controller.getPreferenceService();
86 PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.NameDetailsView);
87 nameDetailsPref = service.find(key);
88 if (nameDetailsPref != null) {
89 isAllowOverride = nameDetailsPref.isAllowOverride();
90 CdmPreferenceCache cache = CdmPreferenceCache.instance();
91 cache.put(nameDetailsPref);
92 }else {
93 isAllowOverride = true;
94 }
95
96
97 }
98 nameDetailsConfig = PreferencesUtil.getPreferredNameDetailsConfiguration(false);
99
100
101 }
102
103
104
105
106 }