Project

General

Profile

Download (5.2 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.events.SelectionListener;
8
import org.eclipse.swt.layout.GridData;
9
import org.eclipse.swt.layout.GridLayout;
10
import org.eclipse.swt.widgets.Button;
11
import org.eclipse.swt.widgets.Combo;
12
import org.eclipse.swt.widgets.Composite;
13
import org.eclipse.swt.widgets.Control;
14
import org.eclipse.swt.widgets.Label;
15

    
16
import eu.etaxonomy.taxeditor.l10n.Messages;
17
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
18

    
19
public class OrderPreferences extends CdmPreferencePage implements SelectionListener{
20

    
21

    
22
        NavigatorOrderEnum orderActivated;
23
        private Combo orderSelectionCombo;
24
	    boolean isRestoreTaxonNavigator;
25
	    boolean isSelectionChanged = false;
26
	    boolean isStrictlyAlphabeticallyOrdered;
27
	    Button activateRestoreNavigatorButton;
28

    
29
	    @Override
30
	    protected Control createContents(Composite parent) {
31

    
32
	        isRestoreTaxonNavigator = PreferencesUtil.isStoreNavigatorState();
33

    
34
            Composite secondComposite = new Composite(parent, SWT.NULL);
35
            secondComposite.setLayout(new GridLayout());
36

    
37
            activateRestoreNavigatorButton = new Button(secondComposite, SWT.CHECK | SWT.LEFT);
38
            activateRestoreNavigatorButton.setText(Messages.OrderPreferences_Restore);
39
            activateRestoreNavigatorButton.setSelection(isRestoreTaxonNavigator);
40
            activateRestoreNavigatorButton.addSelectionListener(new SelectionAdapter(){
41
                @Override
42
                public void widgetSelected(SelectionEvent e) {
43
                    setApply(true);
44
                    if(isRestoreTaxonNavigator != activateRestoreNavigatorButton.getSelection()) {
45
                        isRestoreTaxonNavigator = activateRestoreNavigatorButton.getSelection();
46

    
47
                    }
48
                }
49

    
50
            });
51

    
52

    
53
            Composite composite = new Composite(parent, SWT.NULL);
54
	        composite.setLayout(new GridLayout());
55

    
56
	        Label label = new Label(composite, SWT.NONE);
57
	        label.setText(Messages.OrderPreferences_Sorting);
58

    
59
	        GridData gridData = new GridData();
60
            gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
61
            gridData.horizontalIndent = 5;
62

    
63
	        orderSelectionCombo = new Combo(composite, SWT.BORDER| SWT.READ_ONLY);
64
	        orderSelectionCombo.setLayoutData(gridData);
65

    
66
            for(NavigatorOrderEnum display: NavigatorOrderEnum.values()){
67
                orderSelectionCombo.add(display.getLabel());
68
            }
69

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

    
74
                for (String itemLabel : orderSelectionCombo.getItems()){
75
                    if (itemLabel.equalsIgnoreCase(orderActivated.getLabel())){
76
                        orderSelectionCombo.select(index);
77
                        break;
78
                    }
79
                    index++;
80
                }
81
            }
82

    
83
            // TODO remember last selection
84
            orderSelectionCombo.addSelectionListener(this);
85

    
86
            final Label description = new Label(parent, SWT.NONE);
87
            description.setText(Messages.OrderPreferencePage_NewNavigatorWindowRequired);
88

    
89
	        return composite;
90
	    }
91

    
92

    
93
		@Override
94
		public boolean performOk() {
95
		    if (this.orderActivated != null){
96
    		    PreferencesUtil.setSortNodes(this.orderActivated);
97
    	        PreferencesUtil.setStoreNavigatorState(isRestoreTaxonNavigator);
98
    	    	MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);
99
		    }
100
			return super.performOk();
101

    
102
		}
103

    
104

    
105
        /**
106
         * {@inheritDoc}
107
         */
108
        @Override
109
        public void widgetSelected(SelectionEvent e) {
110
            setApply(true);
111
            isSelectionChanged = true;
112
            for (NavigatorOrderEnum item : NavigatorOrderEnum.values()){
113
                if (item.getLabel().equalsIgnoreCase(orderSelectionCombo.getText())){
114
                    this.orderActivated = item;
115
                }
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
        @Override
130
        protected void performDefaults() {
131
            activateRestoreNavigatorButton.setSelection(false);
132
            isRestoreTaxonNavigator = false;
133
            orderActivated = NavigatorOrderEnum.RankAndNameOrder;
134
            int index = 0;
135
            for (String itemLabel : orderSelectionCombo.getItems()){
136
                if (itemLabel.equalsIgnoreCase(orderActivated.getLabel())){
137
                    orderSelectionCombo.select(index);
138
                    break;
139
                }
140
                index++;
141
            }
142
            super.performDefaults();
143
        }
144

    
145

    
146
}
(25-25/41)