Project

General

Profile

Download (4.5 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
    protected PublishEnum publishBehaviour;
34

    
35
    protected Combo publishFlagBehaviour;
36
    protected CdmPreference pref = null;
37

    
38
    protected boolean allowOverride;
39

    
40

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

    
45

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

    
66

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

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

    
76
        publishFlagBehaviour.addSelectionListener(new SelectionListener() {
77

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

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

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

    
100
        int index = 0;
101

    
102

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

    
111
        return composite;
112

    
113
    }
114

    
115

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

    
130
    @Override
131
    public void getValues(){
132

    
133
        try{
134
            publishBehaviour = PublishEnum.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey(), true));
135
        }catch (IllegalArgumentException e){
136
            publishBehaviour = PublishEnum.InheritFromParent;
137
        }
138
    }
139

    
140

    
141
}
(29-29/40)