Project

General

Profile

Download (5.09 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2018 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.preferencePage;
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.layout.GridLayout;
16
import org.eclipse.swt.widgets.Button;
17
import org.eclipse.swt.widgets.Composite;
18
import org.eclipse.swt.widgets.Control;
19

    
20
import eu.etaxonomy.cdm.api.application.ICdmRepository;
21
import eu.etaxonomy.cdm.api.service.IPreferenceService;
22
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
23
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
24
import eu.etaxonomy.taxeditor.l10n.Messages;
25
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
26
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
27
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
28
import eu.etaxonomy.taxeditor.store.CdmStore;
29

    
30
/**
31
 * @author k.luther
32
 * @since 23.03.2018
33
 *
34
 */
35
public class PublishFlagPreference extends CdmPreferencePage implements IE4AdminPreferencePage{
36

    
37
   boolean setPublish;
38
   boolean setNotPublish;
39
   boolean inheritFromParent;
40

    
41
   String do_not_publish = "DO NOT PUBLISH";
42
   String inherit_from_parent = "PARENT";
43
   String publish = "PUBLISH";
44
   CdmPreference pref = null;
45

    
46
   @Override
47
   public void init() {
48
       super.init();
49

    
50

    
51
   }
52
    /**
53
     * {@inheritDoc}
54
     */
55
    @Override
56
    protected Control createContents(Composite parent) {
57
        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DefaultBehaviourForPublishFlag);
58
        if (pref == null){
59
            pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DefaultBehaviourForPublishFlag, IPreferenceKeys.PUBLISH);
60
        }
61

    
62
        if (pref.getValue().equals(IPreferenceKeys.DO_NOT_PUBLISH)){
63
            setNotPublish = true;
64
            setPublish = false;
65
            inheritFromParent = false;
66
        }
67

    
68
        if (pref.getValue().equals(IPreferenceKeys.INHERIT_FROM_PARENT)){
69
            setNotPublish = false;
70
            setPublish = false;
71
            inheritFromParent = true;
72
        }
73

    
74
        if (pref.getValue().equals(IPreferenceKeys.PUBLISH)){
75
            setNotPublish = false;
76
            setPublish = true;
77
            inheritFromParent = false;
78
        }
79
        final Composite composite = new Composite(parent, SWT.NULL);
80

    
81
        GridLayout gridLayout = new GridLayout();
82
        composite.setLayout(gridLayout);
83
        final CLabel description = new CLabel(composite, SWT.NULL);
84
        description.setText(Messages.PublishFlagPreference_description);
85
        gridLayout.numColumns = 1;
86
        gridLayout.horizontalSpacing= 10;
87
        gridLayout.makeColumnsEqualWidth = true;
88

    
89
        Button setPublishFlagAsDefault = new Button(composite, SWT.RADIO);
90
        setPublishFlagAsDefault.setText(Messages.PublishFlagPreference_set);
91
        setPublishFlagAsDefault.setSelection(setPublish);
92
        setPublishFlagAsDefault.addSelectionListener(new SelectionAdapter() {
93
            @Override
94
            public void widgetSelected(SelectionEvent e) {
95
               setPublish = !setPublish;
96
            }
97
        });
98
        Button setNotPublishFlagAsDefault = new Button(composite, SWT.RADIO);
99
        setNotPublishFlagAsDefault.setText(Messages.PublishFlagPreference_do_not_set);
100
        setNotPublishFlagAsDefault.setSelection(setNotPublish);
101
        setNotPublishFlagAsDefault.addSelectionListener(new SelectionAdapter() {
102
            @Override
103
            public void widgetSelected(SelectionEvent e) {
104
                setNotPublish = !setNotPublish;
105
            }
106
        });
107

    
108
        Button setInheritFromParent = new Button(composite, SWT.RADIO);
109
        setInheritFromParent.setText(Messages.PublishFlagPreference_inherit);
110
        setInheritFromParent.setSelection(inheritFromParent);
111
        setInheritFromParent.addSelectionListener(new SelectionAdapter() {
112
            @Override
113
            public void widgetSelected(SelectionEvent e) {
114
                inheritFromParent = !inheritFromParent;
115
            }
116
        });
117

    
118
        return composite;
119

    
120
    }
121

    
122

    
123
    @Override
124
    public boolean performOk() {
125
        if (pref == null){
126
            return true;
127
        }
128
        String preferenceValue = null;
129
        if (setPublish){
130
            preferenceValue = publish;
131
        }else if (setNotPublish){
132
            preferenceValue = do_not_publish;
133
        } else{
134
            preferenceValue = inherit_from_parent;
135
        }
136
        CdmPreference pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.DefaultBehaviourForPublishFlag, preferenceValue);
137
        pref.setAllowOverride(true);
138

    
139
        ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
140
        if (controller == null){
141
            return false;
142
        }
143
        IPreferenceService service = controller.getPreferenceService();
144
        service.set(pref);
145
        PreferencesUtil.updateDBPreferences();
146

    
147
        return true;
148
    }
149

    
150

    
151

    
152

    
153
}
(11-11/13)