Project

General

Profile

Download (5.46 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.events.SelectionAdapter;
13
import org.eclipse.swt.events.SelectionEvent;
14
import org.eclipse.swt.layout.GridLayout;
15
import org.eclipse.swt.widgets.Button;
16
import org.eclipse.swt.widgets.Composite;
17
import org.eclipse.swt.widgets.Control;
18

    
19
import eu.etaxonomy.cdm.api.application.ICdmRepository;
20
import eu.etaxonomy.cdm.api.service.IPreferenceService;
21
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
22
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
23
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
24
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
25
import eu.etaxonomy.taxeditor.l10n.Messages;
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 29.05.2018
33
 *
34
 */
35
public class GeneralAdminPreferencePage extends CdmPreferencePage implements IE4AdminPreferencePage {
36

    
37

    
38
    boolean isShowIOMenu = true;
39
    boolean isShowMediaView = true;
40
    boolean isShowCheckListPerspective = false;
41
    /**
42
     * {@inheritDoc}
43
     */
44
    @Override
45
    protected Control createContents(Composite parent) {
46
        final Composite composite = new Composite(parent, SWT.NULL);
47

    
48
        GridLayout gridLayout = new GridLayout();
49
        composite.setLayout(gridLayout);
50
        ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
51
        if (controller != null){
52
            IPreferenceService service = controller.getPreferenceService();
53
            PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.ShowImportExportMenu);
54
            CdmPreference isShowSpecimenPref = service.find(key);
55
            if (isShowSpecimenPref != null){
56
                this.isShowIOMenu = Boolean.valueOf(isShowSpecimenPref.getValue());
57
            }
58

    
59
            key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.ShowMediaView);
60
            CdmPreference isShowMediaViewPref = service.find(key);
61
            if (isShowMediaViewPref != null){
62
                this.isShowMediaView = Boolean.valueOf(isShowMediaViewPref.getValue());
63
            }
64

    
65
            key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.ShowChecklistPerspective);
66
            CdmPreference isShowChecklistPref = service.find(key);
67
            if (isShowChecklistPref != null){
68
                this.isShowCheckListPerspective = Boolean.valueOf(isShowChecklistPref.getValue());
69
            }
70
        }
71
        final Button showIOMenuButton = new Button(composite, SWT.CHECK);
72

    
73
        showIOMenuButton.setText(Messages.DatabasePreferncesPage_Show_IOMenu);
74

    
75
        showIOMenuButton.setSelection(isShowIOMenu);
76
        showIOMenuButton.addSelectionListener(new SelectionAdapter(){
77
             @Override
78
             public void widgetSelected(SelectionEvent e) {
79
                 isShowIOMenu = showIOMenuButton.getSelection();
80

    
81
              }
82
         });
83

    
84
        final Button showMediaViewButton = new Button(composite, SWT.CHECK);
85

    
86
        showMediaViewButton.setText(Messages.DatabasePreferncesPage_Show_MediaView);
87

    
88
        showMediaViewButton.setSelection(isShowMediaView);
89
        showMediaViewButton.addSelectionListener(new SelectionAdapter(){
90
             @Override
91
             public void widgetSelected(SelectionEvent e) {
92
                 isShowMediaView = showIOMenuButton.getSelection();
93

    
94
              }
95
         });
96
        final Button showChecklistPerspectiveButton = new Button(composite, SWT.CHECK);
97

    
98
        showChecklistPerspectiveButton.setText(Messages.DatabasePreferncesPage_Show_ChecklistPerspective);
99

    
100
        showChecklistPerspectiveButton.setSelection(isShowCheckListPerspective);
101
        showChecklistPerspectiveButton.addSelectionListener(new SelectionAdapter(){
102
             @Override
103
             public void widgetSelected(SelectionEvent e) {
104
                 isShowCheckListPerspective = showChecklistPerspectiveButton.getSelection();
105

    
106
              }
107
         });
108

    
109
        return composite;
110
    }
111

    
112
    @Override
113
    public void createControl(Composite parent){
114
        super.createControl(parent);
115
        getControl().setVisible(false);
116
    }
117

    
118
    @Override
119
    public boolean performOk() {
120
       ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
121
       if (controller != null){
122
           IPreferenceService service = controller.getPreferenceService();
123

    
124
           CdmPreference pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowImportExportMenu, Boolean.toString(this.isShowIOMenu));
125
           pref.setAllowOverride(false);
126
           service.set(pref);
127
           pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowMediaView, Boolean.toString(this.isShowMediaView));
128
           pref.setAllowOverride(false);
129
           service.set(pref);
130
           pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowChecklistPerspective, Boolean.toString(this.isShowCheckListPerspective));
131
           pref.setAllowOverride(false);
132
           service.set(pref);
133
           PreferencesUtil.updateDBPreferences();
134

    
135

    
136
       }
137
       return true;
138
   }
139

    
140
}
(5-5/12)