1 package eu
.etaxonomy
.taxeditor
.preference
;
3 import java
.io
.IOException
;
5 import org
.eclipse
.jface
.dialogs
.MessageDialog
;
6 import org
.eclipse
.jface
.preference
.PreferencePage
;
7 import org
.eclipse
.jface
.resource
.ImageDescriptor
;
8 import org
.eclipse
.jface
.viewers
.ArrayContentProvider
;
9 import org
.eclipse
.jface
.viewers
.LabelProvider
;
10 import org
.eclipse
.swt
.SWT
;
11 import org
.eclipse
.swt
.events
.SelectionAdapter
;
12 import org
.eclipse
.swt
.events
.SelectionEvent
;
13 import org
.eclipse
.swt
.graphics
.Image
;
14 import org
.eclipse
.swt
.graphics
.Point
;
15 import org
.eclipse
.swt
.layout
.GridLayout
;
16 import org
.eclipse
.swt
.widgets
.Button
;
17 import org
.eclipse
.swt
.widgets
.Composite
;
18 import org
.eclipse
.swt
.widgets
.Control
;
19 import org
.eclipse
.swt
.widgets
.Label
;
20 import org
.eclipse
.ui
.IWorkbench
;
21 import org
.eclipse
.ui
.IWorkbenchPreferencePage
;
22 import org
.eclipse
.ui
.PlatformUI
;
23 import org
.eclipse
.ui
.dialogs
.ListSelectionDialog
;
25 import eu
.etaxonomy
.taxeditor
.Messages
;
27 public class OrderPreferences
extends PreferencePage
implements IWorkbenchPreferencePage
{
30 boolean isNaturalOrderActivated
;
31 boolean isAlphabeticalOrderActivated
;
32 boolean isRankAndNameOrderActivated
;
33 boolean isSelectionChanged
= false;
34 boolean isStrictlyAlphabeticallyOrdered
;
39 * org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors
43 protected Control
createContents(Composite parent
) {
45 Composite composite
= new Composite(parent
, SWT
.NULL
);
46 composite
.setLayout(new GridLayout());
47 final Label description
= new Label(parent
, SWT
.NONE
);
48 description
.setText(Messages
.OrderPreferencePage_NewNavigatorWindowRequired
);
49 isNaturalOrderActivated
= PreferencesUtil
.getSortNodesNaturally();
50 final Button activateNaturalOrderCheckButton
= new Button(composite
, SWT
.RADIO
);
51 activateNaturalOrderCheckButton
.setText("Enable Natural Order");
52 activateNaturalOrderCheckButton
.setSelection(isNaturalOrderActivated
);
54 isRankAndNameOrderActivated
= !PreferencesUtil
.getSortNodesStrictlyAlphabetically() && !PreferencesUtil
.getSortNodesNaturally();
55 final Button activateRankAndNameOrderActivatedCheckButton
= new Button(composite
, SWT
.RADIO
);
56 activateRankAndNameOrderActivatedCheckButton
.setText("Enable Rank and Aplhabetical Order");
57 activateRankAndNameOrderActivatedCheckButton
.setSelection(isRankAndNameOrderActivated
);
59 isAlphabeticalOrderActivated
= PreferencesUtil
.getSortNodesStrictlyAlphabetically();
60 final Button activateAlphabeticallyOrderedCheckButton
= new Button(composite
, SWT
.RADIO
);
61 activateAlphabeticallyOrderedCheckButton
.setText("Enable Alphabetical Order");
62 activateAlphabeticallyOrderedCheckButton
.setSelection(isAlphabeticalOrderActivated
);
64 activateNaturalOrderCheckButton
.addSelectionListener(new SelectionAdapter(){
66 public void widgetSelected(SelectionEvent e
) {
67 if(isNaturalOrderActivated
!= activateNaturalOrderCheckButton
.getSelection()) {
68 isNaturalOrderActivated
= activateNaturalOrderCheckButton
.getSelection();
69 if (isAlphabeticalOrderActivated
&& isNaturalOrderActivated
){
70 isAlphabeticalOrderActivated
= false;
71 PreferencesUtil
.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated
);
73 if (isRankAndNameOrderActivated
&& isNaturalOrderActivated
){
74 isRankAndNameOrderActivated
= false;
76 PreferencesUtil
.setSortNodesNaturally(isNaturalOrderActivated
);
77 isSelectionChanged
= true;
79 isSelectionChanged
= false;
84 activateAlphabeticallyOrderedCheckButton
.addSelectionListener(new SelectionAdapter(){
86 public void widgetSelected(SelectionEvent e
) {
87 if(isAlphabeticalOrderActivated
!= activateAlphabeticallyOrderedCheckButton
.getSelection()) {
88 isAlphabeticalOrderActivated
= activateAlphabeticallyOrderedCheckButton
.getSelection();
89 if (isNaturalOrderActivated
&& isAlphabeticalOrderActivated
){
90 isNaturalOrderActivated
= false;
91 PreferencesUtil
.setSortNodesNaturally(isNaturalOrderActivated
);
93 if (isRankAndNameOrderActivated
&& isAlphabeticalOrderActivated
){
94 isRankAndNameOrderActivated
= false;
96 PreferencesUtil
.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated
);
97 isSelectionChanged
= true;
99 isSelectionChanged
= false;
105 activateRankAndNameOrderActivatedCheckButton
.addSelectionListener(new SelectionAdapter(){
107 public void widgetSelected(SelectionEvent e
) {
108 if(isRankAndNameOrderActivated
!= activateRankAndNameOrderActivatedCheckButton
.getSelection()) {
109 isRankAndNameOrderActivated
= activateRankAndNameOrderActivatedCheckButton
.getSelection();
110 if (isAlphabeticalOrderActivated
&& isRankAndNameOrderActivated
){
111 isAlphabeticalOrderActivated
= false;
113 if (isNaturalOrderActivated
&& isRankAndNameOrderActivated
){
114 isNaturalOrderActivated
= false;
117 if (isRankAndNameOrderActivated
||(!isNaturalOrderActivated
&& !isAlphabeticalOrderActivated
)){
118 PreferencesUtil
.setSortNodesStrictlyAlphabetically(false);
119 PreferencesUtil
.setSortNodesNaturally(false);
121 isSelectionChanged
= true;
123 isSelectionChanged
= false;
137 public void init(IWorkbench workbench
) {
138 // TODO Auto-generated method stub
143 * @see org.eclipse.jface.preference.PreferencePage#performOk()
146 public boolean performOk() {
147 if(isSelectionChanged
){
148 MessageDialog
.openInformation(getShell(), null, Messages
.OrderPreferencePage_PleaseReopenNavigator
);
149 isSelectionChanged
= false;
150 return super.performOk();