smaller changes for simple name details configuration
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / wizard / DatabasePreferencesPage.java
1 /**
2 * Copyright (C) 2016 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.wizard;
10
11 import java.util.List;
12
13 import org.eclipse.jface.preference.IPreferenceStore;
14 import org.eclipse.jface.wizard.IWizard;
15 import org.eclipse.jface.wizard.IWizardPage;
16 import org.eclipse.swt.SWT;
17 import org.eclipse.swt.events.SelectionAdapter;
18 import org.eclipse.swt.events.SelectionEvent;
19 import org.eclipse.swt.layout.GridData;
20 import org.eclipse.swt.layout.GridLayout;
21 import org.eclipse.swt.widgets.Button;
22 import org.eclipse.swt.widgets.Combo;
23 import org.eclipse.swt.widgets.Composite;
24 import org.eclipse.swt.widgets.Label;
25
26 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
27 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
28 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
29 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
30 import eu.etaxonomy.taxeditor.l10n.Messages;
31 import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
32 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
33 import eu.etaxonomy.taxeditor.preference.NameDetailsConfigurator;
34 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
35
36 /**
37 * @author k.luther
38 * @date 01.11.2016
39 *
40 */
41 public class DatabasePreferencesPage extends AbstractPreferenceWizard implements IWizardPage{
42
43 CdmPreference preferedNomenclaturalCode;
44 NameDetailsConfigurator config ;
45 CdmPreference isRedListPreference;
46 CdmPreference determinationOnlyForFieldUnitsPreference;
47 CdmPreference showCollectingAreaInGeneralSectionPreference;
48 CdmPreference showTaxonAssociationsPreference;
49 CdmPreference setPublishFlagAsDefault;
50
51 boolean isSimpleDetailsViewActivated;
52
53 Composite child ;
54 NameDetailsViewComposite nameDetailsConfig;
55 protected NameDetailsViewComposite getNameDetailsConfig() {
56 return nameDetailsConfig;
57 }
58
59 String selectedPreferenceKey = null;
60
61 ListComponent biocaseProviderList;
62 Abcd206ImportConfigurator abcdImportConfigurator;
63
64 String[][] labelAndValues;
65
66 /*
67 *
68 */
69 public DatabasePreferencesPage(String pageName) {
70 super(pageName);
71 this.preferedNomenclaturalCode = PreferencesUtil.setPreferredNomenclaturalCode(null, false);
72 this.config = PreferencesUtil.setPreferredNameDetailsConfiguration( false);
73 if (config == null){
74 config = new NameDetailsConfigurator(false);
75 }
76
77
78 }
79
80
81 protected IPreferenceStore doGetPreferenceStore() {
82 return PreferencesUtil.getPreferenceStore();
83 }
84
85 /**
86 * @return
87 */
88 private String[][] getLabelAndValues() {
89 List<NomenclaturalCode> supportedCodes = NomenclaturalCodeHelper
90 .getSupportedCodes();
91 labelAndValues = new String[supportedCodes.size()][2];
92 for (int i = 0; i < supportedCodes.size(); i++) {
93 labelAndValues[i][0] = NomenclaturalCodeHelper
94 .getDescription(supportedCodes.get(i));
95 labelAndValues[i][1] = PreferencesUtil
96 .getPreferenceKey(supportedCodes.get(i));
97 }
98 return labelAndValues;
99 }
100
101
102
103
104 public void createNomenclaturalCodeTab(Composite parent){
105
106 Combo nomenclaturalCodeCombo;
107 Label nomenclaturalCodeLabel;
108
109 composite = addTab(Messages.DatabasePreferencesPage_Define_Default_NomenclaturalCode);
110 nomenclaturalCodeCombo = new Combo(composite, SWT.DROP_DOWN);
111
112 List<NomenclaturalCode> supportedCodes = NomenclaturalCodeHelper
113 .getSupportedCodes();
114 for (NomenclaturalCode code: supportedCodes) {
115 nomenclaturalCodeCombo.add(NomenclaturalCodeHelper
116 .getDescription(code));
117
118 }
119 nomenclaturalCodeCombo.select(0);
120 getLabelAndValues();
121 //get the actual nomenclatural code and set it as selection: doGetPreferenceStore().getString(IPreferenceKeys.CDM_NOMENCLATURAL_CODE_KEY);
122 nomenclaturalCodeCombo.addSelectionListener(new SelectionAdapter() {
123 @Override
124 public void widgetSelected(SelectionEvent evt) {
125
126 String name = nomenclaturalCodeCombo.getText();
127
128 for (String[] labelAndValue: labelAndValues){
129 if (labelAndValue[0].equals(name)){
130 selectedPreferenceKey = labelAndValue[1];
131 }
132 }
133
134
135 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.CDM_NOMENCLATURAL_CODE_KEY, selectedPreferenceKey);
136
137 }
138 });
139 nomenclaturalCodeLabel = new Label(composite, SWT.READ_ONLY);
140
141
142 final Button useLocalPreference = new Button(composite, SWT.CHECK);
143 boolean isUseLocalPreference = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.ALLOW_OVERRIDE_NOMENCLATURAL_CODE_KEY);
144 useLocalPreference.setText(Messages.DatabasePreferencesPage_UseLocalPreferences);
145 useLocalPreference.setSelection(isUseLocalPreference);
146 useLocalPreference.addSelectionListener(new SelectionAdapter(){
147 @Override
148 public void widgetSelected(SelectionEvent e) {
149 boolean isUseLocalPreference = useLocalPreference.getSelection();
150 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.ALLOW_OVERRIDE_NOMENCLATURAL_CODE_KEY, isUseLocalPreference);
151 }
152 });
153
154
155
156
157 }
158 public void createSetPublishFlagTab(Composite parent){
159 composite = addTab(Messages.DatabasePreferencesPage_SetPublishFlag);
160 GridLayout gridLayout = new GridLayout();
161 gridLayout.numColumns = 2;
162 composite.setLayout(gridLayout);
163 //radio buttons for set publish as default, set not publish as default and inherit from parent
164
165 }
166
167
168 public void createBiocaseProviderTab(Composite parent){
169 composite = addTab(Messages.DatabasePreferencesPage_Biocase_Provider);
170 GridLayout gridLayout = new GridLayout();
171 gridLayout.numColumns = 2;
172 composite.setLayout(gridLayout);
173 biocaseProviderList = new ListComponent(composite, SWT.SCROLL_LINE);
174
175 }
176
177 public ListComponent getBiocaseProviderList() {
178 return biocaseProviderList;
179 }
180
181 public void createNameDetailsViewConfigurationTab(Composite parent, NameDetailsConfigurator config){
182 composite = parent;
183 composite = addTab(Messages.DatabasePreferencesPage_details_view_configuration);
184 GridLayout gridLayout = new GridLayout();
185 gridLayout.numColumns = 1;
186
187 composite.setLayout(gridLayout);
188 nameDetailsConfig = new NameDetailsViewComposite(composite, SWT.SCROLL_LINE, config);
189
190
191 }
192
193
194 public void createSpecimenOrObservationTab(Composite parent){
195 composite = addTab(Messages.DatabasePreferencesPage_Specimen_Or_Observation);
196
197 final Button showCollectingAreaInGeneralSectionButton = new Button(composite, SWT.CHECK);
198 CdmPreference isShowCollectingAreaInGeneralSection = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowCollectingAreasInGeneralSection);
199
200 showCollectingAreaInGeneralSectionButton.setText(Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section);
201
202 showCollectingAreaInGeneralSectionButton.setSelection(Boolean.valueOf(isShowCollectingAreaInGeneralSection.getValue()));
203 showCollectingAreaInGeneralSectionButton.addSelectionListener(new SelectionAdapter(){
204 @Override
205 public void widgetSelected(SelectionEvent e) {
206 boolean isShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSectionButton.getSelection();
207 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION, isShowCollectingAreaInGeneralSection);
208 }
209 });
210
211 final Button determinationOnlyForFieldUnitsButton = new Button(composite, SWT.CHECK);
212 // boolean isDeterminationOnlyForFieldUnits = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS);
213 CdmPreference isDeterminationOnlyForFieldUnits = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DeterminationOnlyForFieldUnits);
214
215 determinationOnlyForFieldUnitsButton.setText(Messages.DatabasePreferncesPage_Determination_only_for_field_unnits);
216
217 determinationOnlyForFieldUnitsButton.setSelection(Boolean.valueOf(isDeterminationOnlyForFieldUnits.getValue()));
218 determinationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
219 @Override
220 public void widgetSelected(SelectionEvent e) {
221 boolean isDeterminationOnlyForFieldUnits = determinationOnlyForFieldUnitsButton.getSelection();
222 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS, isDeterminationOnlyForFieldUnits);
223 }
224 });
225
226 final Button showTaxonAssociationButton = new Button(composite, SWT.CHECK);
227 CdmPreference isShowTaxonAssociation = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowTaxonAssociations);
228 showTaxonAssociationButton.setText(Messages.DatabasePreferncesPage_Taxon_Associations);
229
230 showTaxonAssociationButton.setSelection(Boolean.valueOf(isShowTaxonAssociation.getValue()));
231 showTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
232 @Override
233 public void widgetSelected(SelectionEvent e) {
234 boolean isShowTaxonAssociation = showTaxonAssociationButton.getSelection();
235 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_TAXON_ASSOCIATIONS, isShowTaxonAssociation);
236 }
237 });
238
239 final Button showLifeFormButton = new Button(composite, SWT.CHECK);
240 boolean isShowLifeForm = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_LIFE_FORM);
241 showLifeFormButton.setText(Messages.DatabasePreferncesPage_Life_Form);
242 showLifeFormButton.setSelection(isShowLifeForm);
243 showLifeFormButton.addSelectionListener(new SelectionAdapter(){
244 @Override
245 public void widgetSelected(SelectionEvent e) {
246 boolean isShowLifeForm = showLifeFormButton.getSelection();
247 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_LIFE_FORM, isShowLifeForm);
248 }
249 });
250
251 // Composite useLocalComp = new Composite(composite, SWT.NONE);
252
253
254 final Button useLocalPreference = new Button(composite, SWT.CHECK);
255 boolean isUseLocalPreference = isShowTaxonAssociation.isAllowOverride();
256 useLocalPreference.setText(Messages.DatabasePreferencesPage_UseLocalPreferences);
257 GridData gridData = new GridData(SWT.FILL, SWT.BOTTOM, false, false);
258 gridData.verticalIndent = 10;
259 useLocalPreference.setLayoutData(gridData);
260
261 useLocalPreference.setSelection(isUseLocalPreference);
262 useLocalPreference.addSelectionListener(new SelectionAdapter(){
263 @Override
264 public void widgetSelected(SelectionEvent e) {
265 boolean isUseLocalPreference = useLocalPreference.getSelection();
266 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.ALLOW_OVERRIDE_SPECIMEN_PREF, isUseLocalPreference);
267 }
268 });
269
270
271
272 }
273
274 /**
275 * {@inheritDoc}
276 */
277 @Override
278 public boolean canFlipToNextPage() {
279 // TODO Auto-generated method stub
280 return false;
281 }
282
283
284
285 /**
286 * {@inheritDoc}
287 */
288 @Override
289 public String getName() {
290 // TODO Auto-generated method stub
291 return null;
292 }
293
294
295
296 /**
297 * {@inheritDoc}
298 */
299 @Override
300 public IWizardPage getNextPage() {
301 // TODO Auto-generated method stub
302 return null;
303 }
304
305
306
307 /**
308 * {@inheritDoc}
309 */
310 @Override
311 public IWizardPage getPreviousPage() {
312 // TODO Auto-generated method stub
313 return null;
314 }
315
316
317
318 /**
319 * {@inheritDoc}
320 */
321 @Override
322 public IWizard getWizard() {
323 // TODO Auto-generated method stub
324 return null;
325 }
326
327
328
329 /**
330 * {@inheritDoc}
331 */
332 @Override
333 public boolean isPageComplete() {
334
335 return true;
336 }
337
338
339
340 /**
341 * {@inheritDoc}
342 */
343 @Override
344 public void setPreviousPage(IWizardPage page) {
345 // TODO Auto-generated method stub
346
347 }
348
349
350
351 /**
352 * {@inheritDoc}
353 */
354 @Override
355 public void setWizard(IWizard newWizard) {
356 // TODO Auto-generated method stub
357
358 }
359
360 /**
361 * {@inheritDoc}
362 */
363 @Override
364 public void createControl(Composite parent) {
365 createNameDetailsViewConfigurationTab(parent, config);
366 createNomenclaturalCodeTab(parent);
367
368 createSpecimenOrObservationTab(parent);
369 createBiocaseProviderTab(parent);
370 setControl(parent);
371 }
372
373 /**
374 * @return
375 */
376 public NameDetailsConfigurator getConfig() {
377 return config;
378 }
379
380 /**
381 *
382 */
383 public Abcd206ImportConfigurator getAbcdImportConfig() {
384 return abcdImportConfigurator;
385
386 }
387
388 /**
389 * @return
390 */
391 public void createAbcdImportConfig() {
392 this.abcdImportConfigurator.setAddIndividualsAssociationsSuchAsSpecimenAndObservations(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_ADD_INDIVIDUALS_ASSOCIATIONS_SUCH_AS_SPECIMEN_AND_OBSERVATIONS));
393 this.abcdImportConfigurator.setAddMediaAsMediaSpecimen(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_ADD_MEDIA_AS_MEDIASPECIMEN));
394 this.abcdImportConfigurator.setAllowReuseOtherClassifications(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_ALLOW_REUSE_OTHER_CLASSIFICATIONS));
395 //this.abcdImportConfigurator.setClassificationUuid(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_CLASSIFICATION_UUID));
396 this.abcdImportConfigurator.setDeduplicateClassifications(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_DEDUPLICATE_CLASSIFICATIONS));
397 this.abcdImportConfigurator.setDeduplicateReferences(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_DEDUPLICATE_REFERENCES));
398 // this.abcdImportConfigurator.setDefaultAuthor(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_DEFAULT_AUTHOR));
399 this.abcdImportConfigurator.setGetSiblings(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_DO_SIBLINGS));
400 this.abcdImportConfigurator.setIgnoreAuthorship(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_IGNORE_AUTHORSHIP));
401 this.abcdImportConfigurator.setIgnoreImportOfExistingSpecimen(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_IGNORE_IMPORT_OF_EXISTING_SPECIMEN));
402 this.abcdImportConfigurator.setMapUnitIdToAccessionNumber(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_MAP_UNIT_ID_TO_ACCESSION_NUMBER));
403 this.abcdImportConfigurator.setMapUnitIdToBarcode(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_MAP_UNIT_ID_TO_BARCODE));
404 this.abcdImportConfigurator.setMapUnitIdToCatalogNumber(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_MAP_UNIT_ID_TOCATALOG_NUMBER));
405 this.abcdImportConfigurator.setMoveNewTaxaToDefaultClassification(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_MOVE_NEW_TAXA_TO_DEFAULT_CLASSIFICATION));
406 this.abcdImportConfigurator.setReuseExistingDescriptiveGroups(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_REUSE_EXISTING_DESCRIPTIVE_GROUPS));
407 this.abcdImportConfigurator.setReuseExistingTaxaWhenPossible(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_REUSE_EXISTING_TAXA_WHEN_POSSIBLE));
408
409 }
410
411
412
413
414
415
416
417 }