fix #9066: visibility of specimen list editor configurable
[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
20
21
22 //protected NameDetailsConfigurator createNameDetailsViewConfig() {
23 //
24 // NameDetailsConfigurator config = new NameDetailsConfigurator(isSimpleDetailsViewActivated!= null? isSimpleDetailsViewActivated:false);
25 //
26 // config.setAppendedPhraseActivated(isShowAppendedPhrase);
27 // config.setAtomisedEpithetsActivated(isShowEpithets);
28 // config.setAuthorshipSectionActivated(isShowAuthorship);
29 // config.setAuthorCacheActivated(isShowAuthorCache);
30 // config.setLSIDActivated(isShowLSID);
31 // config.setNameApprobiationActivated(isShowNameApprobiation);
32 // config.setNameCacheActivated(isShowNameCache);
33 // config.setNameRelationsSectionActivated(isShowNameRelationship);
34 // config.setNameRelationsRuleConsideredActivated(isNameRelationRuleConsideredActivated);
35 // config.setNameRelationsRuleConsideredCodeEditionActivated(isNameRelationRuleConsideredCodeEditionActivated);
36 // config.setNomenclaturalCodeActived(isShowNomenclaturalCode);
37 // config.setNomenclaturalStatusSectionActivated(isShowNomenclaturalStatus);
38 // config.setNomenclaturalStatusRuleConsideredActivated(isNomenclaturalStatusRuleConsideredActivated);
39 // config.setNomenclaturalStatusRuleConsideredCodeEditionActivated(isNomenclaturalStatusRuleConsideredCodeEditionActivated);
40 // config.setNomenclaturalReferenceSectionActivated(isShowNomenclaturalRef);
41 // config.setProtologueActivated(isShowProtologue);
42 // config.setRankActivated(isShowRank);
43 // config.setTaxonSectionActivated(isShowTaxon);
44 // config.setSecDetailsActivated(isSecDetailsActivated);
45 // config.setSecEnabled(isSecEnabled);
46 // config.setTypeDesignationSectionActivated(isShowTypeDesignation);
47 // config.setHybridActivated(isShowHybrid);
48 //
49 //
50 // return config;
51 // }
52
53
54 @Override
55 public boolean performOk() {
56 if (!isApply()){
57 return true;
58 }
59 if (nameDetailsConfig == null){
60 return true;
61 }
62 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
63 if (controller == null){
64 return false;
65 }
66 IPreferenceService service = controller.getPreferenceService();
67 //NameDetailsConfigurator config = createNameDetailsViewConfig();
68 String value = nameDetailsConfig.toString();
69
70 if (nameDetailsConfig.isDefault() && isAllowOverride){
71 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.NameDetailsView));
72
73 return true;
74 }
75 CdmPreference pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NameDetailsView, value);
76 pref.setAllowOverride(isAllowOverride);
77 service.set(pref);
78 PreferencesUtil.updateDBPreferences();
79
80
81 return true;
82 }
83
84
85 @Override
86 public void getValues(){
87 isAdminPreference = true;
88 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
89 if (controller != null){
90 IPreferenceService service = controller.getPreferenceService();
91 PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.NameDetailsView);
92 nameDetailsPref = service.find(key);
93 if (nameDetailsPref != null) {
94 isAllowOverride = nameDetailsPref.isAllowOverride();
95 CdmPreferenceCache cache = CdmPreferenceCache.instance();
96 cache.put(nameDetailsPref);
97 }else {
98 isAllowOverride = true;
99 }
100
101
102 }
103 if (nameDetailsPref == null){
104 nameDetailsConfig = new NameDetailsConfigurator();
105 }else{
106 nameDetailsConfig = PreferencesUtil.getPreferredNameDetailsConfiguration(false);
107 }
108
109
110 }
111
112
113
114
115 }