Project

General

Profile

Download (6.38 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.events.SelectionAdapter;
6
import org.eclipse.swt.events.SelectionEvent;
7
import org.eclipse.swt.layout.GridLayout;
8
import org.eclipse.swt.widgets.Button;
9
import org.eclipse.swt.widgets.Composite;
10
import org.eclipse.swt.widgets.Control;
11
import org.eclipse.swt.widgets.Label;
12

    
13
import eu.etaxonomy.taxeditor.l10n.Messages;
14
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
15

    
16
public class OrderPreferences extends CdmPreferencePage {
17

    
18

    
19
	    boolean isNaturalOrderActivated;
20
	    boolean isAlphabeticalOrderActivated;
21
	    boolean isRankAndNameOrderActivated;
22
	    boolean isRestoreTaxonNavigator;
23
	    boolean isSelectionChanged = false;
24
	    boolean isStrictlyAlphabeticallyOrdered;
25

    
26
	    @Override
27
	    protected Control createContents(Composite parent) {
28

    
29
	        isRestoreTaxonNavigator = PreferencesUtil.isStoreNavigatorState();
30

    
31
            Composite secondComposite = new Composite(parent, SWT.NULL);
32
            secondComposite.setLayout(new GridLayout());
33

    
34
            final Button activateRestoreNavigatorButton = new Button(secondComposite, SWT.CHECK | SWT.LEFT);
35
            activateRestoreNavigatorButton.setText("Restore the last Taxon Navigator state.");
36
            activateRestoreNavigatorButton.setSelection(isRestoreTaxonNavigator);
37
            activateRestoreNavigatorButton.addSelectionListener(new SelectionAdapter(){
38
                @Override
39
                public void widgetSelected(SelectionEvent e) {
40
                    if(isRestoreTaxonNavigator != activateRestoreNavigatorButton.getSelection()) {
41
                        isRestoreTaxonNavigator = activateRestoreNavigatorButton.getSelection();
42

    
43
                    }
44
                }
45

    
46
            });
47

    
48

    
49
            Composite composite = new Composite(parent, SWT.NULL);
50
	        composite.setLayout(new GridLayout());
51

    
52
	        Label label = new Label(composite, SWT.NONE);
53
	        label.setText("Sorting");
54

    
55

    
56
	        isNaturalOrderActivated = PreferencesUtil.getSortNodesNaturally();
57
	        final Button activateNaturalOrderCheckButton = new Button(composite, SWT.RADIO);
58
	        activateNaturalOrderCheckButton.setText("Natural order");
59
	        activateNaturalOrderCheckButton.setSelection(isNaturalOrderActivated);
60

    
61
	        isRankAndNameOrderActivated = !PreferencesUtil.getSortNodesStrictlyAlphabetically() && !PreferencesUtil.getSortNodesNaturally();
62
	        final Button activateRankAndNameOrderActivatedCheckButton = new Button(composite, SWT.RADIO);
63
	        activateRankAndNameOrderActivatedCheckButton.setText("Rank and alphabetical Order");
64
	        activateRankAndNameOrderActivatedCheckButton.setSelection(isRankAndNameOrderActivated);
65

    
66
	        isAlphabeticalOrderActivated = PreferencesUtil.getSortNodesStrictlyAlphabetically();
67
	        final Button activateAlphabeticallyOrderedCheckButton = new Button(composite, SWT.RADIO);
68
	        activateAlphabeticallyOrderedCheckButton.setText("Alphabetical order");
69
	        activateAlphabeticallyOrderedCheckButton.setSelection(isAlphabeticalOrderActivated);
70

    
71
	        activateNaturalOrderCheckButton.addSelectionListener(new SelectionAdapter(){
72
	            @Override
73
	            public void widgetSelected(SelectionEvent e) {
74
	            	if(isNaturalOrderActivated != activateNaturalOrderCheckButton.getSelection()) {
75
	                	isNaturalOrderActivated = activateNaturalOrderCheckButton.getSelection();
76
	                	if (isAlphabeticalOrderActivated && isNaturalOrderActivated){
77
	                		isAlphabeticalOrderActivated = false;
78

    
79
	            		}
80
	            		if (isRankAndNameOrderActivated && isNaturalOrderActivated){
81
	            			isRankAndNameOrderActivated = false;
82
	            		}
83

    
84
                        isSelectionChanged = true;
85
                    }else{
86
                        isSelectionChanged = false;
87
                    }
88

    
89
	            }
90
	        });
91
	        activateAlphabeticallyOrderedCheckButton.addSelectionListener(new SelectionAdapter(){
92
	            @Override
93
	            public void widgetSelected(SelectionEvent e) {
94
	            	if(isAlphabeticalOrderActivated != activateAlphabeticallyOrderedCheckButton.getSelection()) {
95
	            		isAlphabeticalOrderActivated = activateAlphabeticallyOrderedCheckButton.getSelection();
96
	            		if (isNaturalOrderActivated && isAlphabeticalOrderActivated){
97
	            			isNaturalOrderActivated = false;
98

    
99
	            		}
100
	            		if (isRankAndNameOrderActivated && isAlphabeticalOrderActivated){
101
	            			isRankAndNameOrderActivated = false;
102
	            		}
103

    
104
                        isSelectionChanged = true;
105
                    }else{
106
                        isSelectionChanged = false;
107
                    }
108

    
109
	            }
110
	        });
111

    
112
	        activateRankAndNameOrderActivatedCheckButton.addSelectionListener(new SelectionAdapter(){
113
	            @Override
114
	            public void widgetSelected(SelectionEvent e) {
115
	            	if(isRankAndNameOrderActivated != activateRankAndNameOrderActivatedCheckButton.getSelection()) {
116
	            		isRankAndNameOrderActivated = activateRankAndNameOrderActivatedCheckButton.getSelection();
117
	            		if (isAlphabeticalOrderActivated && isRankAndNameOrderActivated){
118
	            			 isAlphabeticalOrderActivated = false;
119
	            			 isNaturalOrderActivated = false;
120
	            		}
121
	            		isSelectionChanged = true;
122
                    }else{
123
                        isSelectionChanged = false;
124
                    }
125

    
126
	            }
127
	        });
128

    
129

    
130

    
131

    
132

    
133
            final Label description = new Label(parent, SWT.NONE);
134
            description.setText(Messages.OrderPreferencePage_NewNavigatorWindowRequired);
135

    
136
	        return composite;
137
	    }
138

    
139

    
140
		@Override
141
		public boolean performOk() {
142
	       if(isSelectionChanged){
143
	           PreferencesUtil.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated);
144
	           PreferencesUtil.setSortNodesNaturally(isNaturalOrderActivated);
145
	           PreferencesUtil.setStoreNavigatorState(isRestoreTaxonNavigator);
146
	    	  MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);
147
	    	  isSelectionChanged = false;
148
			return super.performOk();
149
	       }
150
	       return true;
151
		}
152

    
153

    
154
}
(17-17/24)