2 * Copyright (C) 2016 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.databaseAdmin
.wizard
;
11 import java
.util
.List
;
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
;
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
;
41 public class DatabasePreferencesPage
extends AbstractPreferenceWizard
implements IWizardPage
{
43 CdmPreference preferedNomenclaturalCode
;
44 NameDetailsConfigurator config
;
45 CdmPreference isRedListPreference
;
46 CdmPreference determinationOnlyForFieldUnitsPreference
;
47 CdmPreference showCollectingAreaInGeneralSectionPreference
;
48 CdmPreference showTaxonAssociationsPreference
;
49 CdmPreference setPublishFlagAsDefault
;
51 boolean isSimpleDetailsViewActivated
;
54 NameDetailsViewComposite nameDetailsConfig
;
55 protected NameDetailsViewComposite
getNameDetailsConfig() {
56 return nameDetailsConfig
;
59 String selectedPreferenceKey
= null;
61 ListComponent biocaseProviderList
;
62 Abcd206ImportConfigurator abcdImportConfigurator
;
64 String
[][] labelAndValues
;
69 public DatabasePreferencesPage(String pageName
) {
71 this.preferedNomenclaturalCode
= PreferencesUtil
.setPreferredNomenclaturalCode(null, false);
72 this.config
= PreferencesUtil
.setPreferredNameDetailsConfiguration( false);
74 config
= new NameDetailsConfigurator(false);
81 protected IPreferenceStore
doGetPreferenceStore() {
82 return PreferencesUtil
.getPreferenceStore();
88 private String
[][] getLabelAndValues() {
89 List
<NomenclaturalCode
> supportedCodes
= NomenclaturalCodeHelper
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
));
98 return labelAndValues
;
104 public void createNomenclaturalCodeTab(Composite parent
){
106 Combo nomenclaturalCodeCombo
;
107 Label nomenclaturalCodeLabel
;
109 composite
= addTab(Messages
.DatabasePreferencesPage_Define_Default_NomenclaturalCode
);
110 nomenclaturalCodeCombo
= new Combo(composite
, SWT
.DROP_DOWN
);
112 List
<NomenclaturalCode
> supportedCodes
= NomenclaturalCodeHelper
113 .getSupportedCodes();
114 for (NomenclaturalCode code
: supportedCodes
) {
115 nomenclaturalCodeCombo
.add(NomenclaturalCodeHelper
116 .getDescription(code
));
119 nomenclaturalCodeCombo
.select(0);
121 //get the actual nomenclatural code and set it as selection: doGetPreferenceStore().getString(IPreferenceKeys.CDM_NOMENCLATURAL_CODE_KEY);
122 nomenclaturalCodeCombo
.addSelectionListener(new SelectionAdapter() {
124 public void widgetSelected(SelectionEvent evt
) {
126 String name
= nomenclaturalCodeCombo
.getText();
128 for (String
[] labelAndValue
: labelAndValues
){
129 if (labelAndValue
[0].equals(name
)){
130 selectedPreferenceKey
= labelAndValue
[1];
135 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.CDM_NOMENCLATURAL_CODE_KEY
, selectedPreferenceKey
);
139 nomenclaturalCodeLabel
= new Label(composite
, SWT
.READ_ONLY
);
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(){
148 public void widgetSelected(SelectionEvent e
) {
149 boolean isUseLocalPreference
= useLocalPreference
.getSelection();
150 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.ALLOW_OVERRIDE_NOMENCLATURAL_CODE_KEY
, isUseLocalPreference
);
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
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
);
177 public ListComponent
getBiocaseProviderList() {
178 return biocaseProviderList
;
181 public void createNameDetailsViewConfigurationTab(Composite parent
, NameDetailsConfigurator config
){
183 composite
= addTab(Messages
.DatabasePreferencesPage_details_view_configuration
);
184 GridLayout gridLayout
= new GridLayout();
185 gridLayout
.numColumns
= 1;
187 composite
.setLayout(gridLayout
);
188 nameDetailsConfig
= new NameDetailsViewComposite(composite
, SWT
.SCROLL_LINE
, config
);
194 public void createSpecimenOrObservationTab(Composite parent
){
195 composite
= addTab(Messages
.DatabasePreferencesPage_Specimen_Or_Observation
);
197 final Button showCollectingAreaInGeneralSectionButton
= new Button(composite
, SWT
.CHECK
);
198 CdmPreference isShowCollectingAreaInGeneralSection
= PreferencesUtil
.getPreferenceFromDB(PreferencePredicate
.ShowCollectingAreasInGeneralSection
);
200 showCollectingAreaInGeneralSectionButton
.setText(Messages
.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section
);
202 showCollectingAreaInGeneralSectionButton
.setSelection(Boolean
.valueOf(isShowCollectingAreaInGeneralSection
.getValue()));
203 showCollectingAreaInGeneralSectionButton
.addSelectionListener(new SelectionAdapter(){
205 public void widgetSelected(SelectionEvent e
) {
206 boolean isShowCollectingAreaInGeneralSection
= showCollectingAreaInGeneralSectionButton
.getSelection();
207 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION
, isShowCollectingAreaInGeneralSection
);
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
);
215 determinationOnlyForFieldUnitsButton
.setText(Messages
.DatabasePreferncesPage_Determination_only_for_field_unnits
);
217 determinationOnlyForFieldUnitsButton
.setSelection(Boolean
.valueOf(isDeterminationOnlyForFieldUnits
.getValue()));
218 determinationOnlyForFieldUnitsButton
.addSelectionListener(new SelectionAdapter(){
220 public void widgetSelected(SelectionEvent e
) {
221 boolean isDeterminationOnlyForFieldUnits
= determinationOnlyForFieldUnitsButton
.getSelection();
222 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.DETERMINATION_ONLY_FOR_FIELD_UNITS
, isDeterminationOnlyForFieldUnits
);
226 final Button showTaxonAssociationButton
= new Button(composite
, SWT
.CHECK
);
227 CdmPreference isShowTaxonAssociation
= PreferencesUtil
.getPreferenceFromDB(PreferencePredicate
.ShowTaxonAssociations
);
228 showTaxonAssociationButton
.setText(Messages
.DatabasePreferncesPage_Taxon_Associations
);
230 showTaxonAssociationButton
.setSelection(Boolean
.valueOf(isShowTaxonAssociation
.getValue()));
231 showTaxonAssociationButton
.addSelectionListener(new SelectionAdapter(){
233 public void widgetSelected(SelectionEvent e
) {
234 boolean isShowTaxonAssociation
= showTaxonAssociationButton
.getSelection();
235 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_TAXON_ASSOCIATIONS
, isShowTaxonAssociation
);
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(){
245 public void widgetSelected(SelectionEvent e
) {
246 boolean isShowLifeForm
= showLifeFormButton
.getSelection();
247 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_LIFE_FORM
, isShowLifeForm
);
251 // Composite useLocalComp = new Composite(composite, SWT.NONE);
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
);
261 useLocalPreference
.setSelection(isUseLocalPreference
);
262 useLocalPreference
.addSelectionListener(new SelectionAdapter(){
264 public void widgetSelected(SelectionEvent e
) {
265 boolean isUseLocalPreference
= useLocalPreference
.getSelection();
266 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.ALLOW_OVERRIDE_SPECIMEN_PREF
, isUseLocalPreference
);
278 public boolean canFlipToNextPage() {
279 // TODO Auto-generated method stub
289 public String
getName() {
290 // TODO Auto-generated method stub
300 public IWizardPage
getNextPage() {
301 // TODO Auto-generated method stub
311 public IWizardPage
getPreviousPage() {
312 // TODO Auto-generated method stub
322 public IWizard
getWizard() {
323 // TODO Auto-generated method stub
333 public boolean isPageComplete() {
344 public void setPreviousPage(IWizardPage page
) {
345 // TODO Auto-generated method stub
355 public void setWizard(IWizard newWizard
) {
356 // TODO Auto-generated method stub
364 public void createControl(Composite parent
) {
365 createNameDetailsViewConfigurationTab(parent
, config
);
366 createNomenclaturalCodeTab(parent
);
368 createSpecimenOrObservationTab(parent
);
369 createBiocaseProviderTab(parent
);
376 public NameDetailsConfigurator
getConfig() {
383 public Abcd206ImportConfigurator
getAbcdImportConfig() {
384 return abcdImportConfigurator
;
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
));