set specimen preference to true when editing the first time
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / SpecimenAdminPreferences.java
1 /**
2 * Copyright (C) 2018 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.SWT;
12 import org.eclipse.swt.events.SelectionAdapter;
13 import org.eclipse.swt.events.SelectionEvent;
14 import org.eclipse.swt.layout.GridData;
15 import org.eclipse.swt.layout.GridLayout;
16 import org.eclipse.swt.widgets.Button;
17 import org.eclipse.swt.widgets.Composite;
18 import org.eclipse.swt.widgets.Control;
19 import org.eclipse.swt.widgets.Label;
20
21 import eu.etaxonomy.cdm.api.application.ICdmRepository;
22 import eu.etaxonomy.cdm.api.service.IPreferenceService;
23 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
24 import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
25 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
26 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
27 import eu.etaxonomy.taxeditor.l10n.Messages;
28 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
29 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
30 import eu.etaxonomy.taxeditor.store.CdmStore;
31
32 /**
33 * @author k.luther
34 * @since 27.04.2018
35 *
36 */
37 public class SpecimenAdminPreferences extends CdmPreferencePage implements IE4AdminPreferencePage {
38 public SpecimenAdminPreferences() {
39 }
40
41
42 boolean isShowSpecimenRelatedIssues;
43 boolean isShowCollectingAreaInGeneralSection;
44 boolean isDeterminationOnlyForFieldUnits;
45 boolean isShowTaxonAssociation;
46 boolean isShowLifeForm;
47 boolean isUseLocalPreference;
48 Composite composite;
49
50 @Override
51 protected Control createContents(Composite parent) {
52
53 getValues();
54
55
56 final Button showSpecimenButton = new Button(parent, SWT.CHECK);
57
58 showSpecimenButton.setText(Messages.DatabasePreferncesPage_Show_Specimen);
59
60 showSpecimenButton.setSelection(isShowSpecimenRelatedIssues);
61 showSpecimenButton.addSelectionListener(new SelectionAdapter(){
62 @Override
63 public void widgetSelected(SelectionEvent e) {
64 isShowSpecimenRelatedIssues = showSpecimenButton.getSelection();
65 if(isShowSpecimenRelatedIssues){
66 composite.setVisible(true);
67 composite.setEnabled(true);
68 }else{
69 composite.setVisible(false);
70 composite.setEnabled(false);
71 }
72 }
73 });
74 composite = new Composite(parent, SWT.NULL);
75 GridLayout gridLayout = new GridLayout();
76 composite.setLayout(gridLayout);
77 composite.setEnabled(isShowSpecimenRelatedIssues);
78 Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
79 separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
80
81 final Button showCollectingAreaInGeneralSectionButton = new Button(composite, SWT.CHECK);
82
83 showCollectingAreaInGeneralSectionButton.setText(Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section);
84
85 showCollectingAreaInGeneralSectionButton.setSelection(isShowCollectingAreaInGeneralSection);
86 showCollectingAreaInGeneralSectionButton.addSelectionListener(new SelectionAdapter(){
87 @Override
88 public void widgetSelected(SelectionEvent e) {
89 isShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSectionButton.getSelection();
90
91 }
92 });
93
94 final Button determinationOnlyForFieldUnitsButton = new Button(composite, SWT.CHECK);
95
96 determinationOnlyForFieldUnitsButton.setText(Messages.DatabasePreferncesPage_Determination_only_for_field_unnits);
97
98 determinationOnlyForFieldUnitsButton.setSelection(isDeterminationOnlyForFieldUnits);
99 determinationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
100 @Override
101 public void widgetSelected(SelectionEvent e) {
102 isDeterminationOnlyForFieldUnits = determinationOnlyForFieldUnitsButton.getSelection();
103 }
104 });
105
106 final Button showTaxonAssociationButton = new Button(composite, SWT.CHECK);
107
108 showTaxonAssociationButton.setText(Messages.DatabasePreferncesPage_Taxon_Associations);
109
110 showTaxonAssociationButton.setSelection(isShowTaxonAssociation);
111 showTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
112 @Override
113 public void widgetSelected(SelectionEvent e) {
114 isShowTaxonAssociation = showTaxonAssociationButton.getSelection();
115
116 }
117 });
118
119 final Button showLifeFormButton = new Button(composite, SWT.CHECK);
120 showLifeFormButton.setText(Messages.DatabasePreferncesPage_Life_Form);
121 showLifeFormButton.setSelection(isShowLifeForm);
122 showLifeFormButton.addSelectionListener(new SelectionAdapter(){
123 @Override
124 public void widgetSelected(SelectionEvent e) {
125 isShowLifeForm = showLifeFormButton.getSelection();
126
127 }
128 });
129
130 // Composite useLocalComp = new Composite(composite, SWT.NONE);
131
132
133 final Button useLocalPreference = new Button(composite, SWT.CHECK);
134
135 useLocalPreference.setText(Messages.DatabasePreferencesPage_UseLocalPreferences);
136 GridData gridData = new GridData(SWT.FILL, SWT.BOTTOM, false, false);
137 gridData.verticalIndent = 10;
138 useLocalPreference.setLayoutData(gridData);
139
140 useLocalPreference.setSelection(isUseLocalPreference);
141 useLocalPreference.addSelectionListener(new SelectionAdapter(){
142 @Override
143 public void widgetSelected(SelectionEvent e) {
144 isUseLocalPreference = useLocalPreference.getSelection();
145
146 }
147 });
148 return composite;
149 }
150
151 @Override
152 public void init() {
153 super.init();
154 if(!CdmStore.isActive()){
155 return;
156 }
157
158
159
160 }
161
162 private void getValues(){
163 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
164 if (controller != null){
165 IPreferenceService service = controller.getPreferenceService();
166 PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewEditorInstance(), PreferencePredicate.ShowSpecimen);
167 CdmPreference isShowSpecimenPref = service.find(key);
168 if (isShowSpecimenPref != null){
169 this.isShowSpecimenRelatedIssues = Boolean.valueOf(isShowSpecimenPref.getValue());
170 }else{
171 this.isShowSpecimenRelatedIssues = true;
172 }
173
174
175 key = CdmPreference.NewKey(PreferenceSubject.NewEditorInstance(), PreferencePredicate.ShowCollectingAreasInGeneralSection);
176 CdmPreference isShowCollectingAreaInGeneralSectionPref = service.find(key);
177 if (isShowCollectingAreaInGeneralSectionPref != null){
178 this.isShowCollectingAreaInGeneralSection = Boolean.valueOf(isShowCollectingAreaInGeneralSectionPref.getValue());
179 }
180
181 key = CdmPreference.NewKey(PreferenceSubject.NewEditorInstance(), PreferencePredicate.DeterminationOnlyForFieldUnits);
182 CdmPreference isDeterminationOnlyForFieldUnitsPref = service.find(key);
183 if (isDeterminationOnlyForFieldUnitsPref != null){
184 this.isDeterminationOnlyForFieldUnits = Boolean.valueOf(isDeterminationOnlyForFieldUnitsPref.getValue());
185 }
186 key = CdmPreference.NewKey(PreferenceSubject.NewEditorInstance(), PreferencePredicate.ShowTaxonAssociations);
187 CdmPreference isShowTaxonAssociationPref = service.find(key);
188 if (isShowTaxonAssociationPref != null){
189 this.isShowTaxonAssociation = Boolean.valueOf(isShowTaxonAssociationPref.getValue());
190 isUseLocalPreference = isShowTaxonAssociationPref.isAllowOverride();
191 }
192
193 key = CdmPreference.NewKey(PreferenceSubject.NewEditorInstance(), PreferencePredicate.ShowLifeForm);
194 CdmPreference isShowLifeFormPref = service.find(key);
195 if (isShowLifeFormPref != null){
196 this.isShowLifeForm = Boolean.valueOf(isShowLifeFormPref.getValue());
197 }
198
199
200
201
202 }
203 }
204
205 @Override
206 public boolean performOk() {
207 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
208 if (controller != null){
209 IPreferenceService service = controller.getPreferenceService();
210
211 CdmPreference pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowCollectingAreasInGeneralSection, Boolean.toString(this.isShowCollectingAreaInGeneralSection));
212 pref.setAllowOverride(isUseLocalPreference);
213 service.set(pref);
214 pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowSpecimen, Boolean.toString(this.isShowSpecimenRelatedIssues));
215 pref.setAllowOverride(isUseLocalPreference);
216 service.set(pref);
217
218 pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.DeterminationOnlyForFieldUnits, Boolean.toString(this.isDeterminationOnlyForFieldUnits));
219 pref.setAllowOverride(isUseLocalPreference);
220 service.set(pref);
221
222 pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowTaxonAssociations, Boolean.toString(this.isShowTaxonAssociation));
223 pref.setAllowOverride(isUseLocalPreference);
224 service.set(pref);
225
226 pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowLifeForm, Boolean.toString(this.isShowLifeForm));
227 pref.setAllowOverride(isUseLocalPreference);
228 service.set(pref);
229 PreferencesUtil.updateDBPreferences();
230
231
232 }
233 return true;
234 }
235
236 }