Merge branch 'develop' into bulkNat
[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
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.CdmPreference.PrefKey;
24 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
25 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
26 import eu.etaxonomy.taxeditor.l10n.Messages;
27 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
28 import eu.etaxonomy.taxeditor.store.CdmStore;
29
30 /**
31 * @author k.luther
32 * @since 27.04.2018
33 *
34 */
35 public class SpecimenAdminPreferences extends CdmPreferencePage implements IE4AdminPreferencePage {
36
37
38
39 boolean isShowCollectingAreaInGeneralSection = false;
40 boolean isDeterminationOnlyForFieldUnits = false;
41 boolean isShowTaxonAssociation = false;
42 boolean isShowLifeForm = false;
43 boolean isUseLocalPreference = false;
44
45
46 @Override
47 protected Control createContents(Composite parent) {
48 Composite composite = new Composite(parent, SWT.NULL);
49 GridLayout gridLayout = new GridLayout();
50 composite.setLayout(gridLayout);
51 final Button showCollectingAreaInGeneralSectionButton = new Button(composite, SWT.CHECK);
52
53 showCollectingAreaInGeneralSectionButton.setText(Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section);
54
55 showCollectingAreaInGeneralSectionButton.setSelection(isShowCollectingAreaInGeneralSection);
56 showCollectingAreaInGeneralSectionButton.addSelectionListener(new SelectionAdapter(){
57 @Override
58 public void widgetSelected(SelectionEvent e) {
59 isShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSectionButton.getSelection();
60
61 }
62 });
63
64 final Button determinationOnlyForFieldUnitsButton = new Button(composite, SWT.CHECK);
65
66 determinationOnlyForFieldUnitsButton.setText(Messages.DatabasePreferncesPage_Determination_only_for_field_unnits);
67
68 determinationOnlyForFieldUnitsButton.setSelection(isDeterminationOnlyForFieldUnits);
69 determinationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
70 @Override
71 public void widgetSelected(SelectionEvent e) {
72 isDeterminationOnlyForFieldUnits = determinationOnlyForFieldUnitsButton.getSelection();
73 }
74 });
75
76 final Button showTaxonAssociationButton = new Button(composite, SWT.CHECK);
77
78 showTaxonAssociationButton.setText(Messages.DatabasePreferncesPage_Taxon_Associations);
79
80 showTaxonAssociationButton.setSelection(isShowTaxonAssociation);
81 showTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
82 @Override
83 public void widgetSelected(SelectionEvent e) {
84 isShowTaxonAssociation = showTaxonAssociationButton.getSelection();
85
86 }
87 });
88
89 final Button showLifeFormButton = new Button(composite, SWT.CHECK);
90 showLifeFormButton.setText(Messages.DatabasePreferncesPage_Life_Form);
91 showLifeFormButton.setSelection(isShowLifeForm);
92 showLifeFormButton.addSelectionListener(new SelectionAdapter(){
93 @Override
94 public void widgetSelected(SelectionEvent e) {
95 isShowLifeForm = showLifeFormButton.getSelection();
96
97 }
98 });
99
100 // Composite useLocalComp = new Composite(composite, SWT.NONE);
101
102
103 final Button useLocalPreference = new Button(composite, SWT.CHECK);
104
105 useLocalPreference.setText(Messages.DatabasePreferencesPage_UseLocalPreferences);
106 GridData gridData = new GridData(SWT.FILL, SWT.BOTTOM, false, false);
107 gridData.verticalIndent = 10;
108 useLocalPreference.setLayoutData(gridData);
109
110 useLocalPreference.setSelection(isUseLocalPreference);
111 useLocalPreference.addSelectionListener(new SelectionAdapter(){
112 @Override
113 public void widgetSelected(SelectionEvent e) {
114 isUseLocalPreference = useLocalPreference.getSelection();
115
116 }
117 });
118 return composite;
119 }
120
121 @Override
122 public void init() {
123 super.init();
124 if(!CdmStore.isActive()){
125 return;
126 }
127 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
128 if (controller != null){
129 IPreferenceService service = controller.getPreferenceService();
130 PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.ShowCollectingAreasInGeneralSection);
131 CdmPreference isShowCollectingAreaInGeneralSectionPref = service.find(key);
132 if (isShowCollectingAreaInGeneralSectionPref != null){
133 this.isShowCollectingAreaInGeneralSection = Boolean.valueOf(isShowCollectingAreaInGeneralSectionPref.getValue());
134 }
135 key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.DeterminationOnlyForFieldUnits);
136 CdmPreference isDeterminationOnlyForFieldUnitsPref = service.find(key);
137 if (isDeterminationOnlyForFieldUnitsPref != null){
138 this.isDeterminationOnlyForFieldUnits = Boolean.valueOf(isDeterminationOnlyForFieldUnitsPref.getValue());
139 }
140 key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.ShowTaxonAssociations);
141 CdmPreference isShowTaxonAssociationPref = service.find(key);
142 if (isShowTaxonAssociationPref != null){
143 this.isShowTaxonAssociation = Boolean.valueOf(isShowTaxonAssociationPref.getValue());
144 isUseLocalPreference = isShowTaxonAssociationPref.isAllowOverride();
145 }
146
147 key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.ShowLifeForm);
148 CdmPreference isShowLifeFormPref = service.find(key);
149 if (isShowLifeFormPref != null){
150 this.isShowLifeForm = Boolean.valueOf(isShowLifeFormPref.getValue());
151 }
152
153
154
155
156 }
157
158
159 }
160
161 @Override
162 public boolean performOk() {
163
164
165 return true;
166 }
167
168 }