Project

General

Profile

Download (7.3 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.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
	        isNaturalOrderActivated = PreferencesUtil.getSortNodesNaturally();
61
	        final Button activateNaturalOrderCheckButton = new Button(composite, SWT.RADIO);
62
	        activateNaturalOrderCheckButton.setText("Enable Natural Order");
63
	        activateNaturalOrderCheckButton.setSelection(isNaturalOrderActivated);
64

    
65
	        isRankAndNameOrderActivated = !PreferencesUtil.getSortNodesStrictlyAlphabetically() && !PreferencesUtil.getSortNodesNaturally();
66
	        final Button activateRankAndNameOrderActivatedCheckButton = new Button(composite, SWT.RADIO);
67
	        activateRankAndNameOrderActivatedCheckButton.setText("Enable Rank and Aplhabetical Order");
68
	        activateRankAndNameOrderActivatedCheckButton.setSelection(isRankAndNameOrderActivated);
69

    
70
	        isAlphabeticalOrderActivated = PreferencesUtil.getSortNodesStrictlyAlphabetically();
71
	        final Button activateAlphabeticallyOrderedCheckButton = new Button(composite, SWT.RADIO);
72
	        activateAlphabeticallyOrderedCheckButton.setText("Enable Alphabetical Order");
73
	        activateAlphabeticallyOrderedCheckButton.setSelection(isAlphabeticalOrderActivated);
74

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

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

    
113
	            }
114
	        });
115

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

    
128
	            		if (isRankAndNameOrderActivated ||(!isNaturalOrderActivated && !isAlphabeticalOrderActivated)){
129
	            			PreferencesUtil.setSortNodesStrictlyAlphabetically(false);
130
	            			PreferencesUtil.setSortNodesNaturally(false);
131
	            		}
132
                        isSelectionChanged = true;
133
                    }else{
134
                        isSelectionChanged = false;
135
                    }
136

    
137
	            }
138
	        });
139

    
140

    
141

    
142

    
143

    
144
            final Label description = new Label(parent, SWT.NONE);
145
            description.setText(Messages.OrderPreferencePage_NewNavigatorWindowRequired);
146

    
147
	        return composite;
148
	    }
149

    
150

    
151
		@Override
152
		public void init(IWorkbench workbench) {
153
			// TODO Auto-generated method stub
154

    
155
		}
156

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

    
170

    
171
}
(17-17/25)