Merge branch 'release/5.18.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / AbcdImportAdminPreference.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.events.SelectionEvent;
12 import org.eclipse.swt.events.SelectionListener;
13
14 import eu.etaxonomy.cdm.api.application.ICdmRepository;
15 import eu.etaxonomy.cdm.api.service.IPreferenceService;
16 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
17 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
18 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
19 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
20 import eu.etaxonomy.taxeditor.preference.AbcdImportPreference;
21 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
22 import eu.etaxonomy.taxeditor.store.CdmStore;
23
24 /**
25 * @author k.luther
26 * @since 23.03.2018
27 *
28 */
29 public class AbcdImportAdminPreference extends AbcdImportPreference implements IE4AdminPreferencePage, SelectionListener {
30
31 @Override
32 public boolean performOk() {
33 if (!isApply()){
34 return true;
35 }
36 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
37 if (controller == null){
38 return false;
39 }
40 IPreferenceService service = controller.getPreferenceService();
41 if (configurator != null){
42 String configString = configurator.toString();
43 Abcd206ImportConfigurator defaultConfig = Abcd206ImportConfigurator.NewInstance(null,null);
44 defaultConfig.setNomenclaturalCode(PreferencesUtil.getPreferredNomenclaturalCode());
45 if (configString.equals(defaultConfig.toString())){
46 configString = null;
47 }
48 CdmPreference pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AbcdImportConfig, configString);
49 pref.setAllowOverride(allowOverride);
50
51
52 service.set(pref);
53 PreferencesUtil.updateDBPreferences();
54
55 }
56 if (preference == null){
57 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AbcdImportConfig));
58 }
59 return true;
60 }
61
62 /**
63 * {@inheritDoc}
64 */
65 @Override
66 public void widgetDefaultSelected(SelectionEvent e) {
67 // TODO Auto-generated method stub
68
69 }
70
71 @Override
72 protected void performDefaults() {
73 configurator = Abcd206ImportConfigurator.NewInstance(null,null);
74 preference = null;
75 super.performDefaults();
76 }
77
78 @Override
79 public void getValues() {
80 super.getValues();
81 isAdminPreference = true;
82 configurator = PreferencesUtil.getDBAbcdImportConfigurationPreference();
83
84 }
85
86 }