Project

General

Profile

Download (10.6 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.taxeditor.preference;
2

    
3
import org.eclipse.jface.dialogs.MessageDialog;
4
import org.eclipse.swt.SWT;
5
import org.eclipse.swt.custom.CLabel;
6
import org.eclipse.swt.events.SelectionAdapter;
7
import org.eclipse.swt.events.SelectionEvent;
8
import org.eclipse.swt.events.SelectionListener;
9
import org.eclipse.swt.layout.GridData;
10
import org.eclipse.swt.widgets.Button;
11
import org.eclipse.swt.widgets.Combo;
12
import org.eclipse.swt.widgets.Composite;
13
import org.eclipse.swt.widgets.Control;
14

    
15
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
16
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
17
import eu.etaxonomy.taxeditor.l10n.Messages;
18
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
19

    
20
public class OrderPreferences extends CdmPreferencePage implements SelectionListener{
21

    
22

    
23
        protected NavigatorOrderEnum orderActivated;
24
        private Combo orderSelectionCombo;
25
	    boolean isRestoreTaxonNavigator;
26

    
27

    
28
	    Button activateRestoreNavigatorButton;
29
	    protected Button allowOverrideButton;
30
	    protected CdmPreference orderPref;
31
	    protected CdmPreference nodePref;
32
	    boolean override = false;
33
	    protected boolean allowOverride;
34

    
35
	    protected Combo showTaxonNodeWizardButton;
36
	    protected Button allowOverrideShowTaxonNodeWizardButton;
37
	    protected boolean isOverrideShowTaxonNodeWizard;
38
	    protected boolean isAllowOverrideShowTaxonNodeWizard;
39
	    protected Boolean isShowTaxonNodeWizard;
40

    
41

    
42

    
43
	    @Override
44
	    protected Control createContents(Composite parent) {
45

    
46
	        isRestoreTaxonNavigator = PreferencesUtil.isStoreNavigatorState();
47
	        getValues();
48
            Composite secondComposite = createComposite(parent);
49

    
50
            if(!isAdminPreference) {
51
                activateRestoreNavigatorButton = new Button(secondComposite, SWT.CHECK | SWT.LEFT);
52
                activateRestoreNavigatorButton.setText(Messages.OrderPreferences_Restore);
53
                activateRestoreNavigatorButton.setSelection(isRestoreTaxonNavigator);
54
                activateRestoreNavigatorButton.addSelectionListener(new SelectionAdapter(){
55
                    @Override
56
                    public void widgetSelected(SelectionEvent e) {
57
                        setApply(true);
58
                        if(isRestoreTaxonNavigator != activateRestoreNavigatorButton.getSelection()) {
59
                            isRestoreTaxonNavigator = activateRestoreNavigatorButton.getSelection();
60

    
61
                        }
62
                    }
63

    
64
                });
65
            }
66

    
67
	        orderSelectionCombo = createCombo(secondComposite, NavigatorOrderEnum.values(), PreferencePredicate.TaxonNodeOrder, Messages.OrderPreferences_Sorting, isAdminPreference);
68

    
69
            int index = 0;
70

    
71
            if (orderActivated == null){
72
                orderSelectionCombo.select(index);
73
            }else{
74
                for (String itemLabel : orderSelectionCombo.getItems()){
75
                    if (itemLabel.equalsIgnoreCase(orderActivated.getLabel())){
76
                        orderSelectionCombo.select(index);
77
                        break;
78
                    }
79
                    index++;
80
                }
81
            }
82

    
83

    
84
            orderSelectionCombo.addSelectionListener(this);
85
            if (isAdminPreference){
86
                allowOverrideButton = createAllowOverrideButton(secondComposite);
87
                allowOverrideButton.setSelection(allowOverride);
88
                allowOverrideButton.addSelectionListener(new SelectionAdapter(){
89
                    @Override
90
                    public void widgetSelected(SelectionEvent e) {
91
                        allowOverride = !allowOverride;
92
                        setApply(true);
93
                        }
94
                });
95
            }
96

    
97
            if (orderPref != null && !isAdminPreference){
98
                if (!orderPref.isAllowOverride()){
99
                    orderSelectionCombo.setEnabled(false);
100
                    final CLabel description = new CLabel(secondComposite, SWT.NULL);
101
                  description.setText(Messages.OrderPreferencePage_NotAllowed);
102
                  GridData textGrid = createTextGridData();
103
                  textGrid.verticalSpan = 2;
104
                  description.setLayoutData(textGrid);
105
                }
106
            }
107

    
108
            showTaxonNodeWizardButton = createBooleanCombo(secondComposite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowTaxonNodeWizard, "Show Taxonnode Wizard",
109
                    isAdminPreference);
110
            showTaxonNodeWizardButton.setText(Messages.DatabasePreferncesPage_Show_TaxonNodeWizard);
111
            showTaxonNodeWizardButton.addSelectionListener(this);
112

    
113

    
114
            if (isAdminPreference){
115
                allowOverrideShowTaxonNodeWizardButton = createAllowOverrideButton(secondComposite);
116
                allowOverrideShowTaxonNodeWizardButton.addSelectionListener(new SelectionAdapter(){
117
                    @Override
118
                    public void widgetSelected(SelectionEvent e) {
119
                        isAllowOverrideShowTaxonNodeWizard = allowOverrideShowTaxonNodeWizardButton.getSelection();
120
                        setApply(true);
121
                    }
122
                });
123
                allowOverrideShowTaxonNodeWizardButton.setSelection(isAllowOverrideShowTaxonNodeWizard);
124
            }else{
125
                if (!isAllowOverrideShowTaxonNodeWizard){
126
                    showTaxonNodeWizardButton.setEnabled(false);
127

    
128
                }
129
            }
130

    
131
            if (isShowTaxonNodeWizard == null || (!isOverrideShowTaxonNodeWizard && !isAdminPreference)){
132
                showTaxonNodeWizardButton.select(0);
133
            }else{
134
                if (isShowTaxonNodeWizard){
135
                    showTaxonNodeWizardButton.select(1);
136
                }else{
137
                    showTaxonNodeWizardButton.select(2);
138
                }
139
            }
140

    
141
	        return secondComposite;
142
	    }
143

    
144

    
145
		@Override
146
		public boolean performOk() {
147
		    if (isApply()){
148
    		    PreferencesUtil.setSortNodes(this.orderActivated);
149
    		    if (orderActivated != null){
150
    		        PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonNodeOrder.getKey()), true);
151
    		    }else{
152
    		        PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonNodeOrder.getKey()), false);
153
    		    }
154
    		    PreferencesUtil.setStoreNavigatorState(isRestoreTaxonNavigator);
155

    
156

    
157
    	    	if (isAllowOverrideShowTaxonNodeWizard){
158
    	    	    if (isShowTaxonNodeWizard != null){
159
    	                  PreferencesUtil.setBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey(), isShowTaxonNodeWizard);
160
    	            }
161
    	            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), isOverrideShowTaxonNodeWizard);
162
    	    	}
163

    
164
		    }
165
			return true;
166

    
167
		}
168

    
169

    
170
        /**
171
         * {@inheritDoc}
172
         */
173
        @Override
174
        public void widgetSelected(SelectionEvent e) {
175
            setApply(true);
176
            if (e.getSource().equals(orderSelectionCombo)){
177
                for (NavigatorOrderEnum item : NavigatorOrderEnum.values()){
178
                    if (!orderSelectionCombo.getText().startsWith(Messages.Preference_Use_Default)){
179
                        orderActivated = (NavigatorOrderEnum)orderSelectionCombo.getData(orderSelectionCombo.getText());
180
                    }else{
181
                        orderActivated = null;
182
                    }
183

    
184
                }
185
                MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);
186
            }
187
            if (e.getSource().equals(this.showTaxonNodeWizardButton)) {
188
                String text = showTaxonNodeWizardButton.getText();
189
                if (text.startsWith(Messages.Preference_Use_Default)){
190
                    isOverrideShowTaxonNodeWizard = false;
191
                    isShowTaxonNodeWizard = null;
192

    
193
                }else if (text.equals(SHOW)){
194
                    isShowTaxonNodeWizard = true;
195
                    isOverrideShowTaxonNodeWizard = true;
196
                }else{
197
                    isShowTaxonNodeWizard = false;
198
                    isOverrideShowTaxonNodeWizard = true;
199
                }
200

    
201
            }
202
        }
203

    
204

    
205
        /**
206
         * {@inheritDoc}
207
         */
208
        @Override
209
        public void widgetDefaultSelected(SelectionEvent e) {
210
            // TODO Auto-generated method stub
211

    
212
        }
213

    
214
        @Override
215
        protected void performDefaults() {
216
            if (!isAdminPreference) {
217
                activateRestoreNavigatorButton.setSelection(false);
218
            }
219

    
220
            isRestoreTaxonNavigator = false;
221
            orderActivated = null;
222

    
223
            orderSelectionCombo.select(0);
224
            isOverrideShowTaxonNodeWizard = false;
225
            isShowTaxonNodeWizard = null;
226
            showTaxonNodeWizardButton.select(0);
227

    
228
            super.performDefaults();
229
        }
230

    
231
        @Override
232
        protected void getValues(){
233
            orderPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.TaxonNodeOrder);
234
            override = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonNodeOrder.getKey()));
235
            allowOverride = orderPref != null? orderPref.isAllowOverride():true;
236
            if (orderPref == null || allowOverride  ){
237
                if (override){
238
                    orderActivated = NavigatorOrderEnum.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()));
239
                }
240
            }else{
241
                orderActivated = orderPref.getValue()!= null? NavigatorOrderEnum.valueOf(orderPref.getValue()):null;
242
            }
243

    
244
            isOverrideShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), true): false;
245
            if (isOverrideShowTaxonNodeWizard){
246
                isShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey(), true);
247
            }
248

    
249

    
250
            nodePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowTaxonNodeWizard);
251
            if (nodePref != null){
252
                isAllowOverrideShowTaxonNodeWizard = nodePref.isAllowOverride();
253
            }else{
254
                isAllowOverrideShowTaxonNodeWizard = true;
255
            }
256

    
257
        }
258

    
259
}
(36-36/54)