Project

General

Profile

Download (4.92 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.PreferencesUtil;
26
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
27
import eu.etaxonomy.taxeditor.store.CdmStore;
28

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

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

    
40
   @Override
41
   public void init() {
42
       super.init();
43
       CdmPreference pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DefaultBehaviourForPublishFlag);
44
       if (pref != null){
45
           if (pref.getValue().equals(Messages.PublishFlagPreference_do_not_set)){
46
               setNotPublish = true;
47
               setPublish = false;
48
               inheritFromParent = false;
49
           }
50

    
51
           if (pref.getValue().equals(Messages.PublishFlagPreference_inherit)){
52
               setNotPublish = false;
53
               setPublish = false;
54
               inheritFromParent = true;
55
           }
56

    
57
           if (pref.getValue().equals(Messages.PublishFlagPreference_set)){
58
               setNotPublish = false;
59
               setPublish = true;
60
               inheritFromParent = false;
61
           }
62
       }else{
63
           setNotPublish = false;
64
           setPublish = true;
65
           inheritFromParent = false;
66
       }
67

    
68
   }
69
    /**
70
     * {@inheritDoc}
71
     */
72
    @Override
73
    protected Control createContents(Composite parent) {
74
        final Composite composite = new Composite(parent, SWT.NULL);
75

    
76
        GridLayout gridLayout = new GridLayout();
77
        composite.setLayout(gridLayout);
78
        final CLabel description = new CLabel(composite, SWT.NULL);
79
        description.setText(Messages.PublishFlagPreference_description);
80
        gridLayout.numColumns = 1;
81
        gridLayout.horizontalSpacing= 10;
82
        gridLayout.makeColumnsEqualWidth = true;
83

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

    
103
        Button setInheritFromParent = new Button(composite, SWT.RADIO);
104
        setInheritFromParent.setText(Messages.PublishFlagPreference_inherit);
105
        setInheritFromParent.setSelection(inheritFromParent);
106
        setInheritFromParent.addSelectionListener(new SelectionAdapter() {
107
            @Override
108
            public void widgetSelected(SelectionEvent e) {
109
                inheritFromParent = !inheritFromParent;
110
            }
111
        });
112

    
113
        return composite;
114

    
115
    }
116

    
117

    
118
    @Override
119
    public boolean performOk() {
120
        String preferenceValue = null;
121
        if (setPublish){
122
            preferenceValue = Messages.PublishFlagPreference_set;
123
        }else if (setNotPublish){
124
            preferenceValue = Messages.PublishFlagPreference_do_not_set;
125
        } else{
126
            preferenceValue = Messages.PublishFlagPreference_inherit;
127
        }
128
        CdmPreference pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.DefaultBehaviourForPublishFlag, preferenceValue);
129
        pref.setAllowOverride(true);
130

    
131
        ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
132
        if (controller == null){
133
            return false;
134
        }
135
        IPreferenceService service = controller.getPreferenceService();
136
        service.set(pref);
137

    
138
        return true;
139
    }
140

    
141

    
142

    
143

    
144
}
(8-8/9)