Project

General

Profile

« Previous | Next » 

Revision 432276e4

Added by Katja Luther over 5 years ago

ref #7849: harmonize admin and local preferences for distribution editor and use drop down instead of radio buttons

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/OrderPreferences.java
4 4
import org.eclipse.swt.SWT;
5 5
import org.eclipse.swt.events.SelectionAdapter;
6 6
import org.eclipse.swt.events.SelectionEvent;
7
import org.eclipse.swt.events.SelectionListener;
8
import org.eclipse.swt.layout.GridData;
7 9
import org.eclipse.swt.layout.GridLayout;
8 10
import org.eclipse.swt.widgets.Button;
11
import org.eclipse.swt.widgets.Combo;
9 12
import org.eclipse.swt.widgets.Composite;
10 13
import org.eclipse.swt.widgets.Control;
11 14
import org.eclipse.swt.widgets.Label;
......
13 16
import eu.etaxonomy.taxeditor.l10n.Messages;
14 17
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
15 18

  
16
public class OrderPreferences extends CdmPreferencePage {
19
public class OrderPreferences extends CdmPreferencePage implements SelectionListener{
17 20

  
18 21

  
19
	    boolean isNaturalOrderActivated;
20
	    boolean isAlphabeticalOrderActivated;
21
	    boolean isRankAndNameOrderActivated;
22
        NavigatorOrderEnum orderActivated;
23
        private Combo orderSelectionCombo;
22 24
	    boolean isRestoreTaxonNavigator;
23 25
	    boolean isSelectionChanged = false;
24 26
	    boolean isStrictlyAlphabeticallyOrdered;
......
52 54
	        Label label = new Label(composite, SWT.NONE);
53 55
	        label.setText("Sorting");
54 56

  
57
	        GridData gridData = new GridData();
58
            gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
59
            gridData.horizontalIndent = 5;
55 60

  
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
                    }
61
	        orderSelectionCombo = new Combo(composite, SWT.BORDER| SWT.READ_ONLY);
62
	        orderSelectionCombo.setLayoutData(gridData);
88 63

  
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
                    }
64
            for(NavigatorOrderEnum display: NavigatorOrderEnum.values()){
65
                orderSelectionCombo.add(display.getLabel());
66
            }
67

  
68
            int index = 0;
69
            if (PreferencesUtil.getStringValue(IPreferenceKeys.SORT_NODES) != null){
70
                this.orderActivated = NavigatorOrderEnum.valueOf(PreferencesUtil.getStringValue(IPreferenceKeys.SORT_NODES));
108 71

  
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;
72
                for (String itemLabel : orderSelectionCombo.getItems()){
73
                    if (itemLabel.equalsIgnoreCase(orderActivated.getLabel())){
74
                        orderSelectionCombo.select(index);
75
                        break;
124 76
                    }
77
                    index++;
78
                }
79
            }
80

  
81
            // TODO remember last selection
82
            orderSelectionCombo.addSelectionListener(this);
125 83

  
126
	            }
127
	        });
128 84

  
129 85

  
130 86

  
......
140 96
		@Override
141 97
		public boolean performOk() {
142 98
	       if(isSelectionChanged){
143
	           PreferencesUtil.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated);
144
	           PreferencesUtil.setSortNodesNaturally(isNaturalOrderActivated);
99
	           PreferencesUtil.setSortNodes(this.orderActivated);
100

  
145 101
	           PreferencesUtil.setStoreNavigatorState(isRestoreTaxonNavigator);
146 102
	    	  MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);
147 103
	    	  isSelectionChanged = false;
......
151 107
		}
152 108

  
153 109

  
110
        /**
111
         * {@inheritDoc}
112
         */
113
        @Override
114
        public void widgetSelected(SelectionEvent e) {
115
            // TODO Auto-generated method stub
116

  
117
        }
118

  
119

  
120
        /**
121
         * {@inheritDoc}
122
         */
123
        @Override
124
        public void widgetDefaultSelected(SelectionEvent e) {
125
            // TODO Auto-generated method stub
126

  
127
        }
128

  
129

  
154 130
}

Also available in: Unified diff