Project

General

Profile

Download (5.69 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2019 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.preference;
10

    
11
import org.eclipse.swt.events.SelectionAdapter;
12
import org.eclipse.swt.events.SelectionEvent;
13
import org.eclipse.swt.events.SelectionListener;
14
import org.eclipse.swt.widgets.Button;
15
import org.eclipse.swt.widgets.Combo;
16
import org.eclipse.swt.widgets.Composite;
17
import org.eclipse.swt.widgets.Control;
18

    
19
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
20
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
21
import eu.etaxonomy.taxeditor.l10n.Messages;
22
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
23

    
24
/**
25
 * @author k.luther
26
 * @since 02.07.2019
27
 *
28
 */
29
public class DistributionDetailsViewPreference extends CdmPreferencePage implements SelectionListener{
30

    
31
    protected Combo comboShowIdInVocabularyInText;
32
    private boolean isOverrideShowIdInVoc = true;
33
    protected Boolean isShowIdInVoc;
34
    protected boolean allowOverrideShowIdInVoc;
35
    protected CdmPreference prefShowIdInVoc = null;
36
    Button allowOverrideButtonShowIdInVoc;
37
    /**
38
     * {@inheritDoc}
39
     */
40
    @Override
41
    protected Control createContents(Composite parent) {
42
        getValues();
43
        Composite composite = createComposite(parent);
44
      //show Id in Vocabulary in textfield
45
        comboShowIdInVocabularyInText = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.NamedAreaWithIdInVoc, Messages.FactualData_showIdInVocabulary, isAdminPreference);
46
        comboShowIdInVocabularyInText.setToolTipText(Messages.FactualData_showIdInVocabulary_tooltip);
47
        comboShowIdInVocabularyInText.addSelectionListener(this);
48
        if (this.isAdminPreference){
49
            allowOverrideButtonShowIdInVoc = createAllowOverrideButton(composite);
50
            allowOverrideButtonShowIdInVoc.setSelection(allowOverrideShowIdInVoc);
51
            allowOverrideButtonShowIdInVoc.addSelectionListener(new SelectionAdapter(){
52
                @Override
53
                public void widgetSelected(SelectionEvent e) {
54
                    allowOverrideShowIdInVoc = !allowOverrideShowIdInVoc;
55
                    setApply(true);
56
                    }
57
            });
58
        }
59
        int index = 0;
60
        if(isShowIdInVoc==null){
61
            comboShowIdInVocabularyInText.select(0);
62
        } else{
63
            for (String itemLabel : comboShowIdInVocabularyInText.getItems()){
64
                if (itemLabel.startsWith(this.SHOW) && isShowIdInVoc){
65
                    comboShowIdInVocabularyInText.select(index);
66
                    break;
67
                }
68
                if (itemLabel.startsWith(DO_NOT_SHOW) && !isShowIdInVoc){
69
                    comboShowIdInVocabularyInText.select(index);
70
                    break;
71
                }
72
                index++;
73
            }
74
        }
75
        if (!isAdminPreference){
76
            comboShowIdInVocabularyInText.setEnabled(allowOverrideShowIdInVoc);
77
        }
78

    
79

    
80
        return composite;
81
    }
82
    @Override
83
    public void getValues(){
84
      //get show IdInVocabulary values
85
        prefShowIdInVoc = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NamedAreaWithIdInVoc);
86
        if (prefShowIdInVoc == null){
87
            prefShowIdInVoc = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaWithIdInVoc, PreferencePredicate.NamedAreaWithIdInVoc.getDefaultValue().toString());
88
        }
89
        allowOverrideShowIdInVoc = prefShowIdInVoc.isAllowOverride();
90
        isShowIdInVoc = null;
91
        String showIdInVoc = PreferencesUtil.getStringValue(PreferencePredicate.NamedAreaWithIdInVoc.getKey(), true);
92
        if (showIdInVoc != null){
93
            isShowIdInVoc = Boolean.valueOf(showIdInVoc);
94
        }
95

    
96
        isOverrideShowIdInVoc = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NamedAreaWithIdInVoc.getKey()));
97
        if (!isOverrideShowIdInVoc){
98
            isShowIdInVoc = null;
99
        }
100

    
101
    }
102

    
103
    @Override
104
    protected void performDefaults() {
105
       isShowIdInVoc = null;
106
       allowOverrideShowIdInVoc = true;
107

    
108
       comboShowIdInVocabularyInText.select(0);
109
       if (isAdminPreference){
110
           allowOverrideButtonShowIdInVoc.setSelection(allowOverrideShowIdInVoc);
111
        }
112

    
113
        setApply(true);
114
        super.performDefaults();
115
    }
116
    @Override
117
    public void widgetSelected(SelectionEvent e) {
118
        if (e.getSource().equals(this.comboShowIdInVocabularyInText)) {
119
            String text = comboShowIdInVocabularyInText.getText();
120
            if (text.startsWith(Messages.Preference_Use_Default)){
121
                isOverrideShowIdInVoc = false;
122
                isShowIdInVoc = null;
123

    
124
            }else if (text.equals(SHOW)){
125
                isShowIdInVoc = true;
126
                isOverrideShowIdInVoc = true;
127
            }else{
128
                isShowIdInVoc = false;
129
                isOverrideShowIdInVoc = true;
130
            }
131

    
132
        }
133
        setApply(true);
134

    
135
    }
136

    
137
    @Override
138
    public void widgetDefaultSelected(SelectionEvent e) {
139
    }
140

    
141
    @Override
142
    public boolean performOk() {
143
        if (isApply()){
144
            if (isShowIdInVoc != null){
145
                PreferencesUtil.setStringValue(PreferencePredicate.NamedAreaWithIdInVoc.getKey(), Boolean.toString(isShowIdInVoc));
146
                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NamedAreaWithIdInVoc.getKey()), true);
147

    
148
            }else{
149
                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NamedAreaWithIdInVoc.getKey()), false);
150
            }
151

    
152
        }
153
        return true;
154
    }
155

    
156
}
(13-13/62)