Merge branch 'hotfix/5.22.1'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / SearchDialogAdminPreferences.java
1 /**
2 * Copyright (C) 2019 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
10
11 import eu.etaxonomy.cdm.api.application.ICdmRepository;
12 import eu.etaxonomy.cdm.api.service.IPreferenceService;
13 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
14 import eu.etaxonomy.cdm.model.metadata.NamedAreaSearchField;
15 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
16 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
17 import eu.etaxonomy.taxeditor.preference.SearchDialogPreferences;
18 import eu.etaxonomy.taxeditor.store.CdmStore;
19
20 /**
21 * @author k.luther
22 * @since 08.08.2019
23 */
24 public class SearchDialogAdminPreferences extends SearchDialogPreferences implements IE4AdminPreferencePage {
25
26
27
28
29 @Override
30 public void getValues(){
31 super.getValues();
32 isAdminPreference = true;
33 if(showIdInSelectionDialogPref != null){
34 showIdInSelectionDialog = showIdInSelectionDialogPref.getValue() != null? Boolean.parseBoolean(showIdInSelectionDialogPref.getValue()): null;
35 }else{
36 showIdInSelectionDialog = null;
37 showIdInSelectionDialogPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowIdInSelectionDialog, null);
38 }
39 if (searchForIdentifierAsDefaultPref != null){
40 searchForIdentifierAsDefault = searchForIdentifierAsDefaultPref.getValue() != null? Boolean.parseBoolean(searchForIdentifierAsDefaultPref.getValue()): null;
41 }else{
42 searchForIdentifierAsDefault = null;
43 searchForIdentifierAsDefaultPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.SearchForIdentifierAsDefault, null);
44 }
45 if (searchForIdentifierAndTitleCachePref != null){
46 searchForIdentifierAndTitleCache = searchForIdentifierAndTitleCachePref.getValue() != null? Boolean.parseBoolean(searchForIdentifierAndTitleCachePref.getValue()): null;
47 }else{
48 searchForIdentifierAndTitleCache = null;
49 searchForIdentifierAndTitleCachePref =CdmPreference.NewTaxEditorInstance(PreferencePredicate.SearchForIdentifierAndTitleCache, null);
50 }
51 if (sortTaxaByRankAndNamePref != null){
52 sortTaxaByRankAndName = sortTaxaByRankAndNamePref.getValue() != null? Boolean.parseBoolean(sortTaxaByRankAndNamePref.getValue()): null;
53 }else{
54 sortTaxaByRankAndName = null;
55 sortTaxaByRankAndNamePref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.SortTaxaByRankAndName, null);
56 }
57 if (filterCommonNameReferencesPref != null){
58 filterCommonNameReferences = filterCommonNameReferencesPref.getValue() != null? Boolean.parseBoolean(filterCommonNameReferencesPref.getValue()): null;
59 }else{
60 filterCommonNameReferences = null;
61 filterCommonNameReferencesPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameReferencesWithMarker, null);
62 }
63 if (this.searchNamedAreasByAbbrevPref != null){
64 searchNamedAreasByAbbrev = searchNamedAreasByAbbrevPref.getValue() != null? NamedAreaSearchField.byKey(searchNamedAreasByAbbrevPref.getValue()): null;
65 }else{
66 searchNamedAreasByAbbrev = null;
67 searchNamedAreasByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
68 }
69
70 }
71
72 @Override
73 public boolean performOk(){
74 if (!isApply()){
75 return true;
76 }
77 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
78 if (controller != null){
79 IPreferenceService service = controller.getPreferenceService();
80 CdmPreference pref;
81 if (showIdInSelectionDialog != null || !showIdInSelectionDialogPref.isAllowOverride()) {
82 pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowIdInSelectionDialog, showIdInSelectionDialog != null? showIdInSelectionDialog.toString():null);
83 pref.setAllowOverride(showIdInSelectionDialogPref.isAllowOverride());
84 service.set(pref);
85 }else{
86 service.remove(showIdInSelectionDialogPref.getKey());
87 }
88
89
90 if(searchForIdentifierAsDefault != null || !searchForIdentifierAsDefaultPref.isAllowOverride()){
91 pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.SearchForIdentifierAsDefault, searchForIdentifierAsDefault!= null? searchForIdentifierAsDefault.toString():null);
92 pref.setAllowOverride(searchForIdentifierAsDefaultPref.isAllowOverride());
93 service.set(pref);
94 }else{
95 service.remove(searchForIdentifierAsDefaultPref.getKey());
96 }
97
98
99 if(searchForIdentifierAndTitleCache != null || !searchForIdentifierAndTitleCachePref.isAllowOverride()){
100 pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.SearchForIdentifierAndTitleCache, searchForIdentifierAndTitleCache!= null? searchForIdentifierAndTitleCache.toString():null);
101 pref.setAllowOverride(searchForIdentifierAndTitleCachePref.isAllowOverride());
102 service.set(pref);
103 }else{
104 service.remove(searchForIdentifierAndTitleCachePref.getKey());
105 }
106
107 if(sortTaxaByRankAndName != null || !sortTaxaByRankAndNamePref.isAllowOverride()){
108
109 pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.SortTaxaByRankAndName, sortTaxaByRankAndName!= null? sortTaxaByRankAndName.toString():null);
110 pref.setAllowOverride(sortTaxaByRankAndNamePref.isAllowOverride());
111 service.set(pref);
112 }else{
113 service.remove(sortTaxaByRankAndNamePref.getKey());
114 }
115
116 if(filterCommonNameReferences != null || !filterCommonNameReferencesPref.isAllowOverride()){
117 pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameReferencesWithMarker, filterCommonNameReferences!= null? filterCommonNameReferences.toString():null);
118 pref.setAllowOverride(filterCommonNameReferencesPref.isAllowOverride());
119 service.set(pref);
120 }else{
121 service.remove(filterCommonNameReferencesPref.getKey());
122 }
123
124 if(searchNamedAreasByAbbrev != null || !searchNamedAreasByAbbrevPref.isAllowOverride()){
125 pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, searchNamedAreasByAbbrev!= null? searchNamedAreasByAbbrev.getKey():null);
126 pref.setAllowOverride(searchNamedAreasByAbbrevPref.isAllowOverride());
127 service.set(pref);
128 }else{
129 service.remove(searchNamedAreasByAbbrevPref.getKey());
130 }
131 }
132 PreferencesUtil.updateDBPreferences();
133 return true;
134 }
135
136
137
138 }