Project

General

Profile

Download (4.26 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.SWT;
12
import org.eclipse.swt.custom.CLabel;
13
import org.eclipse.swt.events.SelectionAdapter;
14
import org.eclipse.swt.events.SelectionEvent;
15
import org.eclipse.swt.events.SelectionListener;
16
import org.eclipse.swt.widgets.Button;
17
import org.eclipse.swt.widgets.Combo;
18
import org.eclipse.swt.widgets.Composite;
19
import org.eclipse.swt.widgets.Control;
20

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

    
26
/**
27
 * @author k.luther
28
 * @since 08.01.2019
29
 *
30
 */
31
public class PublishFlagLocalPreference extends CdmPreferencePage {
32

    
33
    PublishEnum publishBehaviour;
34

    
35
    Combo publishFlagBehaviour;
36
    CdmPreference pref = null;
37

    
38
    protected boolean allowOverride;
39

    
40
   @Override
41
   public void init() {
42
       super.init();
43

    
44

    
45
   }
46
    /**
47
     * {@inheritDoc}
48
     */
49
    @Override
50
    protected Control createContents(Composite parent) {
51
        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DefaultBehaviourForPublishFlag);
52
        if (pref == null){
53
            pref = CdmPreference.NewTaxEditorInstance(EditorPreferencePredicate.DefaultBehaviourForPublishFlag, EditorPreferencePredicate.DefaultBehaviourForPublishFlag.getDefaultValue().toString());
54
        }
55
        allowOverride = pref.isAllowOverride();
56
        Composite composite = createComposite(parent);
57
        final CLabel description = new CLabel(composite, SWT.NULL);
58
        if (!allowOverride){
59
            description.setText(Messages.PublishFlagPreference_description_not_allowed);
60
            description.setLayoutData(createTextGridData());
61
            return composite;
62
        }
63
        PublishEnum publishFlag = PublishEnum.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey(), true));
64

    
65
        description.setText(Messages.PublishFlagPreference_description);
66
        description.setLayoutData(createTextGridData());
67
        publishFlagBehaviour = new Combo(composite, SWT.READ_ONLY);
68

    
69
        publishFlagBehaviour.setFont(parent.getFont());
70
        for(PublishEnum display: PublishEnum.values()){
71
            publishFlagBehaviour.add(display.getLabel());
72
        }
73

    
74
        publishFlagBehaviour.addSelectionListener(new SelectionListener() {
75

    
76
            @Override
77
            public void widgetSelected(SelectionEvent e) {
78
                setApply(true);
79
            }
80

    
81
            @Override
82
            public void widgetDefaultSelected(SelectionEvent e) {
83
                // TODO Auto-generated method stub
84

    
85
            }
86
        });
87
        Button allowOverrideButton = createAllowOverrideButton(composite);
88
        allowOverrideButton.setText(Messages.GeneralPreference_override);
89
        allowOverrideButton.setSelection(allowOverride);
90
        allowOverrideButton.addSelectionListener(new SelectionAdapter(){
91
            @Override
92
            public void widgetSelected(SelectionEvent e) {
93
                allowOverride = allowOverrideButton.getSelection();
94
                setApply(true);
95
                }
96
        });
97

    
98
        int index = 0;
99

    
100

    
101
        for (String itemLabel : publishFlagBehaviour.getItems()){
102
            if (itemLabel.equalsIgnoreCase(publishFlag.getLabel())){
103
                publishFlagBehaviour.select(index);
104
                break;
105
            }
106
            index++;
107
        }
108

    
109
        return composite;
110

    
111
    }
112

    
113

    
114
    @Override
115
    public boolean performOk() {
116
        String text = publishFlagBehaviour.getText();
117
        for (PublishEnum display: PublishEnum.values()){
118
            if (display.getLabel().equals(text)){
119
                text = display.getKey();
120
                break;
121
            }
122
        }
123
        PreferencesUtil.setStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey(), text);
124
        PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(EditorPreferencePredicate.DefaultBehaviourForPublishFlag.getKey()), allowOverride);
125
        return true;
126
    }
127

    
128

    
129
}
(24-24/31)