Merge branch 'hotfix/5.43.1'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / ChecklistEditorGeneralAdminPreference.java
1 /**
2 * Copyright (C) 2014 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 org.eclipse.swt.widgets.Composite;
12 import org.eclipse.swt.widgets.Control;
13
14 import eu.etaxonomy.cdm.api.application.ICdmRepository;
15 import eu.etaxonomy.cdm.api.service.IPreferenceService;
16 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
17 import eu.etaxonomy.cdm.model.metadata.DistributionDescription;
18 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
19 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
20 import eu.etaxonomy.cdm.model.metadata.TermComboEnum;
21 import eu.etaxonomy.cdm.model.metadata.TermDisplayEnum;
22 import eu.etaxonomy.cdm.model.metadata.TermOrder;
23 import eu.etaxonomy.taxeditor.preference.ChecklistEditorGeneralPreference;
24 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
25 import eu.etaxonomy.taxeditor.store.CdmStore;
26
27 /**
28 * @author a.oppermann
29 * @date 21.07.2014
30 *
31 */
32 public class ChecklistEditorGeneralAdminPreference extends ChecklistEditorGeneralPreference implements IE4AdminPreferencePage {
33
34 Composite parent;
35
36
37 @Override
38 protected Control createContents(Composite parent) {
39 this.parent = parent;
40 return super.createContents(parent);
41
42 }
43
44 @Override
45 public boolean performOk() {
46 if (!isApply()){
47 return true;
48 }
49 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
50 if (controller == null){
51 return false;
52 }
53 IPreferenceService service = controller.getPreferenceService();
54 CdmPreference pref;
55 if (isEditorActivated == null && allowOverrideActivatedButton.getSelection()){
56 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DistributionEditorActivated));
57 }else{
58 pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.DistributionEditorActivated, isEditorActivated != null? Boolean.toString(isEditorActivated): null);
59 pref.setAllowOverride(allowOverrideActivatedButton.getSelection());
60 service.set(pref);
61 }
62 if(displayArea == null && allowOverrideAreaDisplayButton.getSelection()){
63 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DisplayOfAreasInDistributionEditor));
64 }else{
65 pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.DisplayOfAreasInDistributionEditor, displayArea != null ?this.displayArea.getKey(): null);
66 pref.setAllowOverride(allowOverrideAreaDisplayButton.getSelection());
67 service.set(pref);
68 }
69
70 if (displayStatus == null && allowOverrideStatusDisplayButton.getSelection()){
71 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DisplayOfStatus));
72 }else{
73 pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.DisplayOfStatus, displayStatus != null? this.displayStatus.getKey(): null);
74 pref.setAllowOverride(allowOverrideStatusDisplayButton.getSelection());
75 service.set(pref);
76 }
77
78 if (isShowRank == null && allowOverrideRankButton.getSelection()){
79 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowRankInDistributionEditor));
80 }else{
81 pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.ShowRankInDistributionEditor, isShowRank != null? Boolean.toString(isShowRank): null);
82 pref.setAllowOverride(allowOverrideRankButton.getSelection());
83 service.set(pref);
84 }
85 if (orderAreas == null && allowOverrideOrderAreasButton.getSelection()){
86 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AreasSortedInDistributionEditor));
87 }else{
88 pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.AreasSortedInDistributionEditor, orderAreas != null? this.orderAreas.getKey(): null);
89 pref.setAllowOverride(allowOverrideOrderAreasButton.getSelection());
90 service.set(pref);
91 }
92
93 if (orderStatus == null && allowOverrideStatusSortButton.getSelection()){
94 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.StatusSortedInDistributionEditor));
95 }else{
96 pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.StatusSortedInDistributionEditor, orderStatus != null? this.orderStatus.getKey(): null);
97 pref.setAllowOverride(allowOverrideStatusSortButton.getSelection());
98 service.set(pref);
99 }
100
101
102 if (displayStatusCombo == null && allowOverrideStatusDisplayInComboButton.getSelection()){
103 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DisplayOfStatusInCombo));
104 }else{
105 pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.DisplayOfStatusInCombo, displayStatusCombo != null? displayStatusCombo.getKey(): null);
106 if (prefStatusDisplayInCombo == null){
107 prefStatusDisplayInCombo = pref;
108 }
109 pref.setAllowOverride(prefStatusDisplayInCombo.isAllowOverride());
110 service.set(pref);
111 }
112
113 if (numberOfStatus == null && allowOverrideNumberOfStatusButton.getSelection()){
114 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.NumberOfVisibleStatusInDropDown));
115 }else{
116 pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.NumberOfVisibleStatusInDropDown, numberOfStatus != null? numberOfStatus.toString(): null);
117 if (prefNumberStatus == null){
118 prefNumberStatus = pref;
119 }
120 pref.setAllowOverride(prefNumberStatus.isAllowOverride());
121 service.set(pref);
122 }
123
124 if (descriptionForDistributionEditor == null && allowOverrideDescriptionSelectionButton.getSelection()){
125 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DescriptionForDistributionEditor));
126 }else{
127 pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.DescriptionForDistributionEditor, descriptionForDistributionEditor != null? descriptionForDistributionEditor.getKey(): null);
128 if (prefDescription == null){
129 prefDescription = pref;
130 }
131 pref.setAllowOverride(prefDescription.isAllowOverride());
132 service.set(pref);
133 }
134
135 PreferencesUtil.updateDBPreferences();
136
137 return true;
138 }
139
140 @Override
141 public void getValues() {
142 super.getValues();
143 distributionEditorPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DistributionEditorActivated);
144 if (distributionEditorPref != null){
145 isEditorActivated = distributionEditorPref.getValue() != null? Boolean.valueOf(distributionEditorPref.getValue()): null;
146 }else{
147 isEditorActivated = null;
148 }
149
150
151 isAdminPreference = true;
152
153 if (prefAreaDisplay != null){
154 this.displayArea = prefAreaDisplay.getValue()!= null?TermDisplayEnum.byKey(prefAreaDisplay.getValue()): null;
155 }else{
156 this.displayArea = null;
157 }
158
159
160 if (prefStatusDisplay != null){
161 this.displayStatus = prefStatusDisplay.getValue() != null? TermDisplayEnum.byKey(prefStatusDisplay.getValue()): null;
162 }else{
163 this.displayStatus = null;
164 }
165
166 if (prefStatusDisplayInCombo != null){
167 this.displayStatusCombo = prefStatusDisplayInCombo.getValue() != null? TermComboEnum.byKey(prefStatusDisplayInCombo.getValue()): null;
168 }else{
169 this.displayStatusCombo = null;
170 }
171
172
173 if (prefAreaSort != null){
174 if (prefAreaSort.getValue() != null){
175 this.orderAreas = prefAreaSort.getValue() != null? TermOrder.valueOf(prefAreaSort.getValue().toString()): null;
176 }else{
177 this.orderAreas = null;
178 }
179
180 }else{
181 this.orderAreas = null;
182
183 }
184
185 if (prefStatusSort != null){
186 if (prefStatusSort.getValue() != null){
187 this.orderStatus = prefStatusSort.getValue() != null? TermOrder.valueOf(prefStatusSort.getValue().toString()): null;
188 }else{
189 this.orderStatus = null;
190 }
191
192 }else{
193 this.orderStatus = null;
194
195 }
196
197
198 if (prefRank != null){
199 this.isShowRank = prefRank.getValue() != null?Boolean.valueOf(prefRank.getValue().toString()): null;
200
201 }else{
202 this.isShowRank = null;
203 }
204
205 if (prefNumberStatus != null){
206 this.numberOfStatus = prefNumberStatus.getValue() != null?Integer.valueOf(prefNumberStatus.getValue().toString()): null;
207
208 }else{
209 this.numberOfStatus = null;
210 }
211
212 if (prefDescription != null){
213 this.descriptionForDistributionEditor = prefDescription.getValue() != null? DistributionDescription.byKey(prefDescription.getValue().toString()): null;
214 }else{
215 this.descriptionForDistributionEditor = null;
216 }
217
218
219
220 setValid(false);
221 }
222
223
224
225 }