Project

General

Profile

Download (16.3 KB) Statistics
| Branch: | Tag: | Revision:
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
        if (isShowCollectingAreaInGeneralSection == null){
200
            isShowCollectingAreaInGeneralSection = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowCollectingAreasInGeneralSection, Boolean.toString(false));
201
        }
202
        showCollectingAreaInGeneralSectionButton.setText(Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section);
203

    
204
        showCollectingAreaInGeneralSectionButton.setSelection(Boolean.valueOf(isShowCollectingAreaInGeneralSection.getValue()));
205
        showCollectingAreaInGeneralSectionButton.addSelectionListener(new SelectionAdapter(){
206
             @Override
207
             public void widgetSelected(SelectionEvent e) {
208
                 boolean isShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSectionButton.getSelection();
209
                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION, isShowCollectingAreaInGeneralSection);
210
              }
211
         });
212

    
213
        final Button determinationOnlyForFieldUnitsButton = new Button(composite, SWT.CHECK);
214
//        boolean isDeterminationOnlyForFieldUnits = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS);
215
        CdmPreference isDeterminationOnlyForFieldUnits = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DeterminationOnlyForFieldUnits);
216
        if (isDeterminationOnlyForFieldUnits == null){
217
            isDeterminationOnlyForFieldUnits = CdmPreference.NewDatabaseInstance(PreferencePredicate.DeterminationOnlyForFieldUnits, Boolean.toString(false));
218
        }
219
        determinationOnlyForFieldUnitsButton.setText(Messages.DatabasePreferncesPage_Determination_only_for_field_unnits);
220

    
221
        determinationOnlyForFieldUnitsButton.setSelection(Boolean.valueOf(isDeterminationOnlyForFieldUnits.getValue()));
222
        determinationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
223
             @Override
224
             public void widgetSelected(SelectionEvent e) {
225
                 boolean isDeterminationOnlyForFieldUnits = determinationOnlyForFieldUnitsButton.getSelection();
226
                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS, isDeterminationOnlyForFieldUnits);
227
              }
228
         });
229

    
230
        final Button showTaxonAssociationButton = new Button(composite, SWT.CHECK);
231
        CdmPreference isShowTaxonAssociation = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowTaxonAssociations);
232
        if (isShowTaxonAssociation == null){
233
            isShowTaxonAssociation = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowTaxonAssociations, Boolean.toString(false));
234
        }
235
        showTaxonAssociationButton.setText(Messages.DatabasePreferncesPage_Taxon_Associations);
236

    
237
        showTaxonAssociationButton.setSelection(Boolean.valueOf(isShowTaxonAssociation.getValue()));
238
        showTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
239
             @Override
240
             public void widgetSelected(SelectionEvent e) {
241
                 boolean isShowTaxonAssociation = showTaxonAssociationButton.getSelection();
242
                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_TAXON_ASSOCIATIONS, isShowTaxonAssociation);
243
              }
244
         });
245

    
246
        final Button showLifeFormButton = new Button(composite, SWT.CHECK);
247
        CdmPreference  isShowLifeForm = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowLifeForm);
248
        if (isShowLifeForm == null){
249
            isShowLifeForm = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowLifeForm, Boolean.toString(false));
250
        }
251

    
252
        showLifeFormButton.setText(Messages.DatabasePreferncesPage_Life_Form);
253
        showLifeFormButton.setSelection(Boolean.valueOf(isShowLifeForm.getValue()));
254
        showLifeFormButton.addSelectionListener(new SelectionAdapter(){
255
             @Override
256
             public void widgetSelected(SelectionEvent e) {
257
                 boolean isShowLifeForm = showLifeFormButton.getSelection();
258
                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_LIFE_FORM, isShowLifeForm);
259
              }
260
         });
261

    
262
//        Composite useLocalComp = new Composite(composite, SWT.NONE);
263

    
264

    
265
        final Button useLocalPreference = new Button(composite, SWT.CHECK);
266
        boolean isUseLocalPreference = isShowTaxonAssociation.isAllowOverride();
267
        useLocalPreference.setText(Messages.DatabasePreferencesPage_UseLocalPreferences);
268
        GridData gridData = new GridData(SWT.FILL, SWT.BOTTOM, false, false);
269
        gridData.verticalIndent = 10;
270
        useLocalPreference.setLayoutData(gridData);
271

    
272
        useLocalPreference.setSelection(isUseLocalPreference);
273
        useLocalPreference.addSelectionListener(new SelectionAdapter(){
274
             @Override
275
             public void widgetSelected(SelectionEvent e) {
276
                 boolean isUseLocalPreference = useLocalPreference.getSelection();
277
                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.ALLOW_OVERRIDE_SPECIMEN_PREF, isUseLocalPreference);
278
              }
279
         });
280

    
281

    
282

    
283
 }
284

    
285
/**
286
 * {@inheritDoc}
287
 */
288
@Override
289
public boolean canFlipToNextPage() {
290
    // TODO Auto-generated method stub
291
    return false;
292
}
293

    
294

    
295

    
296
/**
297
 * {@inheritDoc}
298
 */
299
@Override
300
public String getName() {
301
    // TODO Auto-generated method stub
302
    return null;
303
}
304

    
305

    
306

    
307
/**
308
 * {@inheritDoc}
309
 */
310
@Override
311
public IWizardPage getNextPage() {
312
    // TODO Auto-generated method stub
313
    return null;
314
}
315

    
316

    
317

    
318
/**
319
 * {@inheritDoc}
320
 */
321
@Override
322
public IWizardPage getPreviousPage() {
323
    // TODO Auto-generated method stub
324
    return null;
325
}
326

    
327

    
328

    
329
/**
330
 * {@inheritDoc}
331
 */
332
@Override
333
public IWizard getWizard() {
334
    // TODO Auto-generated method stub
335
    return null;
336
}
337

    
338

    
339

    
340
/**
341
 * {@inheritDoc}
342
 */
343
@Override
344
public boolean isPageComplete() {
345

    
346
    return true;
347
}
348

    
349

    
350

    
351
/**
352
 * {@inheritDoc}
353
 */
354
@Override
355
public void setPreviousPage(IWizardPage page) {
356
    // TODO Auto-generated method stub
357

    
358
}
359

    
360

    
361

    
362
/**
363
 * {@inheritDoc}
364
 */
365
@Override
366
public void setWizard(IWizard newWizard) {
367
    // TODO Auto-generated method stub
368

    
369
}
370

    
371
/**
372
 * {@inheritDoc}
373
 */
374
@Override
375
public void createControl(Composite parent) {
376
    createNameDetailsViewConfigurationTab(parent, config);
377
    createNomenclaturalCodeTab(parent);
378

    
379
    createSpecimenOrObservationTab(parent);
380
    createBiocaseProviderTab(parent);
381
    setControl(parent);
382
}
383

    
384
/**
385
 * @return
386
 */
387
public NameDetailsConfigurator getConfig() {
388
    return config;
389
}
390

    
391
/**
392
 *
393
 */
394
public Abcd206ImportConfigurator getAbcdImportConfig() {
395
    return abcdImportConfigurator;
396

    
397
}
398

    
399
/**
400
 * @return
401
 */
402
public void createAbcdImportConfig() {
403
    this.abcdImportConfigurator.setAddIndividualsAssociationsSuchAsSpecimenAndObservations(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_ADD_INDIVIDUALS_ASSOCIATIONS_SUCH_AS_SPECIMEN_AND_OBSERVATIONS));
404
    this.abcdImportConfigurator.setAddMediaAsMediaSpecimen(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_ADD_MEDIA_AS_MEDIASPECIMEN));
405
    this.abcdImportConfigurator.setAllowReuseOtherClassifications(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_ALLOW_REUSE_OTHER_CLASSIFICATIONS));
406
    //this.abcdImportConfigurator.setClassificationUuid(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_CLASSIFICATION_UUID));
407
    this.abcdImportConfigurator.setDeduplicateClassifications(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_DEDUPLICATE_CLASSIFICATIONS));
408
    this.abcdImportConfigurator.setDeduplicateReferences(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_DEDUPLICATE_REFERENCES));
409
   // this.abcdImportConfigurator.setDefaultAuthor(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_DEFAULT_AUTHOR));
410
    this.abcdImportConfigurator.setGetSiblings(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_DO_SIBLINGS));
411
    this.abcdImportConfigurator.setIgnoreAuthorship(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_IGNORE_AUTHORSHIP));
412
    this.abcdImportConfigurator.setIgnoreImportOfExistingSpecimen(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_IGNORE_IMPORT_OF_EXISTING_SPECIMEN));
413
    this.abcdImportConfigurator.setMapUnitIdToAccessionNumber(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_MAP_UNIT_ID_TO_ACCESSION_NUMBER));
414
    this.abcdImportConfigurator.setMapUnitIdToBarcode(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_MAP_UNIT_ID_TO_BARCODE));
415
    this.abcdImportConfigurator.setMapUnitIdToCatalogNumber(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_MAP_UNIT_ID_TOCATALOG_NUMBER));
416
    this.abcdImportConfigurator.setMoveNewTaxaToDefaultClassification(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_MOVE_NEW_TAXA_TO_DEFAULT_CLASSIFICATION));
417
    this.abcdImportConfigurator.setReuseExistingDescriptiveGroups(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_REUSE_EXISTING_DESCRIPTIVE_GROUPS));
418
    this.abcdImportConfigurator.setReuseExistingTaxaWhenPossible(doGetPreferenceStore().getBoolean(IPreferenceKeys.ABCD_IMPORT_CONFIGURATOR_REUSE_EXISTING_TAXA_WHEN_POSSIBLE));
419

    
420
}
421

    
422

    
423

    
424

    
425

    
426

    
427

    
428
}
(2-2/12)