Project

General

Profile

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

    
3
import org.eclipse.jface.dialogs.MessageDialog;
4
import org.eclipse.jface.preference.PreferencePage;
5
import org.eclipse.swt.SWT;
6
import org.eclipse.swt.events.SelectionAdapter;
7
import org.eclipse.swt.events.SelectionEvent;
8
import org.eclipse.swt.layout.GridLayout;
9
import org.eclipse.swt.widgets.Button;
10
import org.eclipse.swt.widgets.Composite;
11
import org.eclipse.swt.widgets.Control;
12
import org.eclipse.swt.widgets.Label;
13
import org.eclipse.ui.IWorkbench;
14
import org.eclipse.ui.IWorkbenchPreferencePage;
15

    
16
import eu.etaxonomy.taxeditor.l10n.Messages;
17

    
18
public class OrderPreferences extends PreferencePage implements IWorkbenchPreferencePage {
19

    
20

    
21
	    boolean isNaturalOrderActivated;
22
	    boolean isAlphabeticalOrderActivated;
23
	    boolean isRankAndNameOrderActivated;
24
	    boolean isRestoreTaxonNavigator;
25
	    boolean isSelectionChanged = false;
26
	    boolean isStrictlyAlphabeticallyOrdered;
27
	    /*
28
	     * (non-Javadoc)
29
	     *
30
	     * @see
31
	     * org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors
32
	     * ()
33
	     */
34
	    @Override
35
	    protected Control createContents(Composite parent) {
36

    
37
	        isRestoreTaxonNavigator = PreferencesUtil.isStoreNavigatorState();
38

    
39
            Composite secondComposite = new Composite(parent, SWT.NULL);
40
            secondComposite.setLayout(new GridLayout());
41

    
42
            final Button activateRestoreNavigatorButton = new Button(secondComposite, SWT.CHECK | SWT.LEFT);
43
            activateRestoreNavigatorButton.setText("Restore the last Taxon Navigator state.");
44
            activateRestoreNavigatorButton.setSelection(isRestoreTaxonNavigator);
45
            activateRestoreNavigatorButton.addSelectionListener(new SelectionAdapter(){
46
                @Override
47
                public void widgetSelected(SelectionEvent e) {
48
                    if(isRestoreTaxonNavigator != activateRestoreNavigatorButton.getSelection()) {
49
                        isRestoreTaxonNavigator = activateRestoreNavigatorButton.getSelection();
50
                        PreferencesUtil.setStoreNavigatorState(isRestoreTaxonNavigator);
51
                    }
52
                }
53

    
54
            });
55

    
56

    
57
            Composite composite = new Composite(parent, SWT.NULL);
58
	        composite.setLayout(new GridLayout());
59

    
60
	        Label label = new Label(composite, SWT.NONE);
61
	        label.setText("Sorting");
62

    
63

    
64
	        isNaturalOrderActivated = PreferencesUtil.getSortNodesNaturally();
65
	        final Button activateNaturalOrderCheckButton = new Button(composite, SWT.RADIO);
66
	        activateNaturalOrderCheckButton.setText("Enable Natural Order");
67
	        activateNaturalOrderCheckButton.setSelection(isNaturalOrderActivated);
68

    
69
	        isRankAndNameOrderActivated = !PreferencesUtil.getSortNodesStrictlyAlphabetically() && !PreferencesUtil.getSortNodesNaturally();
70
	        final Button activateRankAndNameOrderActivatedCheckButton = new Button(composite, SWT.RADIO);
71
	        activateRankAndNameOrderActivatedCheckButton.setText("Enable Rank and Alphabetical Order");
72
	        activateRankAndNameOrderActivatedCheckButton.setSelection(isRankAndNameOrderActivated);
73

    
74
	        isAlphabeticalOrderActivated = PreferencesUtil.getSortNodesStrictlyAlphabetically();
75
	        final Button activateAlphabeticallyOrderedCheckButton = new Button(composite, SWT.RADIO);
76
	        activateAlphabeticallyOrderedCheckButton.setText("Enable Alphabetical Order");
77
	        activateAlphabeticallyOrderedCheckButton.setSelection(isAlphabeticalOrderActivated);
78

    
79
	        activateNaturalOrderCheckButton.addSelectionListener(new SelectionAdapter(){
80
	            @Override
81
	            public void widgetSelected(SelectionEvent e) {
82
	            	if(isNaturalOrderActivated != activateNaturalOrderCheckButton.getSelection()) {
83
	                	isNaturalOrderActivated = activateNaturalOrderCheckButton.getSelection();
84
	                	if (isAlphabeticalOrderActivated && isNaturalOrderActivated){
85
	                		isAlphabeticalOrderActivated = false;
86
	                		PreferencesUtil.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated);
87
	            		}
88
	            		if (isRankAndNameOrderActivated && isNaturalOrderActivated){
89
	            			isRankAndNameOrderActivated = false;
90
	            		}
91
	                	PreferencesUtil.setSortNodesNaturally(isNaturalOrderActivated);
92
                        isSelectionChanged = true;
93
                    }else{
94
                        isSelectionChanged = false;
95
                    }
96

    
97
	            }
98
	        });
99
	        activateAlphabeticallyOrderedCheckButton.addSelectionListener(new SelectionAdapter(){
100
	            @Override
101
	            public void widgetSelected(SelectionEvent e) {
102
	            	if(isAlphabeticalOrderActivated != activateAlphabeticallyOrderedCheckButton.getSelection()) {
103
	            		isAlphabeticalOrderActivated = activateAlphabeticallyOrderedCheckButton.getSelection();
104
	            		if (isNaturalOrderActivated && isAlphabeticalOrderActivated){
105
	            			isNaturalOrderActivated = false;
106
	            			PreferencesUtil.setSortNodesNaturally(isNaturalOrderActivated);
107
	            		}
108
	            		if (isRankAndNameOrderActivated && isAlphabeticalOrderActivated){
109
	            			isRankAndNameOrderActivated = false;
110
	            		}
111
	                	PreferencesUtil.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated);
112
                        isSelectionChanged = true;
113
                    }else{
114
                        isSelectionChanged = false;
115
                    }
116

    
117
	            }
118
	        });
119

    
120
	        activateRankAndNameOrderActivatedCheckButton.addSelectionListener(new SelectionAdapter(){
121
	            @Override
122
	            public void widgetSelected(SelectionEvent e) {
123
	            	if(isRankAndNameOrderActivated != activateRankAndNameOrderActivatedCheckButton.getSelection()) {
124
	            		isRankAndNameOrderActivated = activateRankAndNameOrderActivatedCheckButton.getSelection();
125
	            		if (isAlphabeticalOrderActivated && isRankAndNameOrderActivated){
126
	            			 isAlphabeticalOrderActivated = false;
127
	            		}
128
	            		if (isNaturalOrderActivated && isRankAndNameOrderActivated){
129
	            			isNaturalOrderActivated = false;
130
	            		}
131

    
132
	            		if (isRankAndNameOrderActivated ||(!isNaturalOrderActivated && !isAlphabeticalOrderActivated)){
133
	            			PreferencesUtil.setSortNodesStrictlyAlphabetically(false);
134
	            			PreferencesUtil.setSortNodesNaturally(false);
135
	            		}
136
                        isSelectionChanged = true;
137
                    }else{
138
                        isSelectionChanged = false;
139
                    }
140

    
141
	            }
142
	        });
143

    
144

    
145

    
146

    
147

    
148
            final Label description = new Label(parent, SWT.NONE);
149
            description.setText(Messages.OrderPreferencePage_NewNavigatorWindowRequired);
150

    
151
	        return composite;
152
	    }
153

    
154

    
155
		@Override
156
		public void init(IWorkbench workbench) {
157
			// TODO Auto-generated method stub
158

    
159
		}
160

    
161
		/* (non-Javadoc)
162
		 * @see org.eclipse.jface.preference.PreferencePage#performOk()
163
		 */
164
		@Override
165
		public boolean performOk() {
166
	       if(isSelectionChanged){
167
	    	  MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);
168
	    	  isSelectionChanged = false;
169
			return super.performOk();
170
	       }
171
	       return true;
172
		}
173

    
174

    
175
}
(19-19/26)