Project

General

Profile

Download (16.4 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.databaseAdmin.preferencePage.ListComponent;
31
import eu.etaxonomy.taxeditor.l10n.Messages;
32
import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
33
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
34
import eu.etaxonomy.taxeditor.preference.NameDetailsConfigurator;
35
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
36

    
37
/**
38
 * @author k.luther
39
 * @date 01.11.2016
40
 *
41
 */
42
public class DatabasePreferencesPage extends AbstractPreferenceWizard implements IWizardPage{
43

    
44
    CdmPreference preferedNomenclaturalCode;
45
    NameDetailsConfigurator config ;
46
    CdmPreference isRedListPreference;
47
    CdmPreference determinationOnlyForFieldUnitsPreference;
48
    CdmPreference showCollectingAreaInGeneralSectionPreference;
49
    CdmPreference showTaxonAssociationsPreference;
50
    CdmPreference setPublishFlagAsDefault;
51

    
52
    boolean isSimpleDetailsViewActivated;
53

    
54
    Composite child ;
55
    NameDetailsViewComposite nameDetailsConfig;
56
    protected NameDetailsViewComposite getNameDetailsConfig() {
57
        return nameDetailsConfig;
58
    }
59

    
60
    String selectedPreferenceKey = null;
61

    
62
    ListComponent biocaseProviderList;
63
    Abcd206ImportConfigurator abcdImportConfigurator;
64

    
65
    String[][] labelAndValues;
66

    
67
    /*
68
     *
69
     */
70
    public DatabasePreferencesPage(String pageName) {
71
        super(pageName);
72
        this.preferedNomenclaturalCode = PreferencesUtil.setPreferredNomenclaturalCode(null, false);
73
        this.config = PreferencesUtil.getPreferredNameDetailsConfiguration( false);
74
        if (config == null){
75
            config = new NameDetailsConfigurator(false);
76
        }
77

    
78

    
79
    }
80

    
81

    
82
    protected IPreferenceStore doGetPreferenceStore() {
83
        return PreferencesUtil.getPreferenceStore();
84
    }
85

    
86
    /**
87
     * @return
88
     */
89
    private String[][] getLabelAndValues() {
90
        List<NomenclaturalCode> supportedCodes = NomenclaturalCodeHelper
91
                .getSupportedCodes();
92
        labelAndValues = new String[supportedCodes.size()][2];
93
        for (int i = 0; i < supportedCodes.size(); i++) {
94
            labelAndValues[i][0] = NomenclaturalCodeHelper
95
                    .getDescription(supportedCodes.get(i));
96
            labelAndValues[i][1] = PreferencesUtil
97
                    .getPreferenceKey(supportedCodes.get(i));
98
        }
99
        return labelAndValues;
100
    }
101

    
102

    
103

    
104

    
105
    public void createNomenclaturalCodeTab(Composite parent){
106

    
107
        Combo nomenclaturalCodeCombo;
108
        Label nomenclaturalCodeLabel;
109

    
110
        composite = addTab(Messages.DatabasePreferencesPage_Define_Default_NomenclaturalCode);
111
        nomenclaturalCodeCombo = new Combo(composite, SWT.DROP_DOWN);
112

    
113
        List<NomenclaturalCode> supportedCodes = NomenclaturalCodeHelper
114
              .getSupportedCodes();
115
        for (NomenclaturalCode code: supportedCodes) {
116
           nomenclaturalCodeCombo.add(NomenclaturalCodeHelper
117
                   .getDescription(code));
118

    
119
       }
120
       nomenclaturalCodeCombo.select(0);
121
       getLabelAndValues();
122
       //get the actual nomenclatural code and set it as selection: doGetPreferenceStore().getString(IPreferenceKeys.CDM_NOMENCLATURAL_CODE_KEY);
123
       nomenclaturalCodeCombo.addSelectionListener(new SelectionAdapter() {
124
           @Override
125
        public void widgetSelected(SelectionEvent evt) {
126

    
127
               String name = nomenclaturalCodeCombo.getText();
128

    
129
               for (String[] labelAndValue: labelAndValues){
130
                   if (labelAndValue[0].equals(name)){
131
                       selectedPreferenceKey = labelAndValue[1];
132
                   }
133
               }
134

    
135

    
136
               PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.PREFERRED_NOMENCLATURAL_CODE_KEY, selectedPreferenceKey);
137

    
138
           }
139
       });
140
       nomenclaturalCodeLabel = new Label(composite, SWT.READ_ONLY);
141

    
142

    
143
        final Button useLocalPreference = new Button(composite, SWT.CHECK);
144
        boolean isUseLocalPreference = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.ALLOW_OVERRIDE_NOMENCLATURAL_CODE_KEY);
145
        useLocalPreference.setText(Messages.DatabasePreferencesPage_UseLocalPreferences);
146
        useLocalPreference.setSelection(isUseLocalPreference);
147
        useLocalPreference.addSelectionListener(new SelectionAdapter(){
148
             @Override
149
             public void widgetSelected(SelectionEvent e) {
150
                 boolean isUseLocalPreference = useLocalPreference.getSelection();
151
                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.ALLOW_OVERRIDE_NOMENCLATURAL_CODE_KEY, isUseLocalPreference);
152
              }
153
         });
154

    
155

    
156

    
157

    
158
    }
159
    public void createSetPublishFlagTab(Composite parent){
160
        composite = addTab(Messages.DatabasePreferencesPage_SetPublishFlag);
161
        GridLayout gridLayout = new GridLayout();
162
        gridLayout.numColumns = 2;
163
        composite.setLayout(gridLayout);
164
        //radio buttons for set publish as default, set not publish as default and inherit from parent
165

    
166
    }
167

    
168

    
169
    public void createBiocaseProviderTab(Composite parent){
170
        composite = addTab(Messages.DatabasePreferencesPage_Biocase_Provider);
171
        GridLayout gridLayout = new GridLayout();
172
        gridLayout.numColumns = 2;
173
        composite.setLayout(gridLayout);
174
        biocaseProviderList = new ListComponent(composite, SWT.SCROLL_LINE);
175

    
176
    }
177

    
178
    public ListComponent getBiocaseProviderList() {
179
        return biocaseProviderList;
180
    }
181

    
182
    public void createNameDetailsViewConfigurationTab(Composite parent, NameDetailsConfigurator config){
183
    	composite = parent;
184
        composite = addTab(Messages.DatabasePreferencesPage_details_view_configuration);
185
        GridLayout gridLayout = new GridLayout();
186
        gridLayout.numColumns = 1;
187

    
188
        composite.setLayout(gridLayout);
189
        nameDetailsConfig = new NameDetailsViewComposite(composite, SWT.SCROLL_LINE, config);
190

    
191

    
192
    }
193

    
194

    
195
    public void createSpecimenOrObservationTab(Composite parent){
196
       composite = addTab(Messages.DatabasePreferencesPage_Specimen_Or_Observation);
197

    
198
        final Button showCollectingAreaInGeneralSectionButton = new Button(composite, SWT.CHECK);
199
        CdmPreference isShowCollectingAreaInGeneralSection = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowCollectingAreasInGeneralSection);
200
        if (isShowCollectingAreaInGeneralSection == null){
201
            isShowCollectingAreaInGeneralSection = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowCollectingAreasInGeneralSection, Boolean.toString(false));
202
        }
203
        showCollectingAreaInGeneralSectionButton.setText(Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section);
204

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

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

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

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

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

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

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

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

    
265

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

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

    
282

    
283

    
284
 }
285

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

    
295

    
296

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

    
306

    
307

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

    
317

    
318

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

    
328

    
329

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

    
339

    
340

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

    
347
    return true;
348
}
349

    
350

    
351

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

    
359
}
360

    
361

    
362

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

    
370
}
371

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

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

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

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

    
398
}
399

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

    
421
}
422

    
423

    
424

    
425

    
426

    
427

    
428

    
429
}
(2-2/11)