ref #8648: default handling in name details preference - continue
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / AbcdImportProviderAdminPreferencePage.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.apache.commons.lang.StringUtils;
12 import org.eclipse.swt.SWT;
13 import org.eclipse.swt.events.SelectionAdapter;
14 import org.eclipse.swt.events.SelectionEvent;
15 import org.eclipse.swt.layout.GridData;
16 import org.eclipse.swt.layout.GridLayout;
17 import org.eclipse.swt.widgets.Composite;
18 import org.eclipse.swt.widgets.Control;
19
20 import eu.etaxonomy.cdm.api.application.ICdmRepository;
21 import eu.etaxonomy.cdm.api.service.IPreferenceService;
22 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
23 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
24 import eu.etaxonomy.taxeditor.preference.AbcdImportProvider;
25 import eu.etaxonomy.taxeditor.preference.ListComponent;
26 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
27 import eu.etaxonomy.taxeditor.store.CdmStore;
28
29 /**
30 * @author k.luther
31 * @since 23.03.2018
32 *
33 */
34 public class AbcdImportProviderAdminPreferencePage extends AbcdImportProvider implements IE4AdminPreferencePage{
35
36
37
38 @Override
39 protected Control createContents(Composite parent) {
40 isAdminPreference = true;
41 final Composite composite = new Composite(parent, SWT.NULL);
42
43 GridLayout gridLayout = new GridLayout();
44 composite.setLayout(gridLayout);
45
46 gridLayout.numColumns = 2;
47 //gridLayout.horizontalSpacing= 5;
48 //gridLayout.makeColumnsEqualWidth = true;
49
50 composite.setLayout(gridLayout);
51 biocaseProviderList = new ListComponent(composite, SWT.SCROLL_LINE,true, this);
52 allowOverride = createAllowOverrideButton(composite);
53 GridData layoutData = (GridData) allowOverride.getLayoutData();
54 layoutData.horizontalAlignment = SWT.LEFT;
55 //layoutData.horizontalSpan = 2;
56
57 allowOverride.setSelection(biocaseProviderList.getProviderListPreference() != null? biocaseProviderList.getProviderListPreference().isAllowOverride(): true);
58 allowOverride.addSelectionListener(new SelectionAdapter() {
59 @Override
60 public void widgetSelected(SelectionEvent e) {
61 setApply(true);
62 }
63 });
64
65 setApply(true);
66 return composite;
67 }
68
69 @Override
70 public boolean performOk() {
71 String providerList = null;
72 if (biocaseProviderList != null){
73 providerList = biocaseProviderList.createAllProviderString();
74
75 CdmPreference pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.BioCaseProvider, providerList);
76 pref.setAllowOverride(allowOverride.getSelection());
77
78 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
79 if (controller == null){
80 return false;
81 }
82 IPreferenceService service = controller.getPreferenceService();
83 if (StringUtils.isBlank(providerList)){
84 service.remove(pref.getKey());
85 }else{
86 service.set(pref);
87 }
88 }
89 PreferencesUtil.updateDBPreferences();
90 return true;
91 }
92
93 }