Project

General

Profile

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

    
3
import org.apache.commons.lang.StringUtils;
4
import org.eclipse.jface.dialogs.MessageDialog;
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.events.SelectionListener;
9
import org.eclipse.swt.layout.GridData;
10
import org.eclipse.swt.layout.GridLayout;
11
import org.eclipse.swt.widgets.Button;
12
import org.eclipse.swt.widgets.Combo;
13
import org.eclipse.swt.widgets.Composite;
14
import org.eclipse.swt.widgets.Control;
15
import org.eclipse.swt.widgets.Label;
16

    
17
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
18
import eu.etaxonomy.taxeditor.l10n.Messages;
19
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
20

    
21
public class OrderPreferences extends CdmPreferencePage implements SelectionListener{
22

    
23

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

    
31
	    @Override
32
	    protected Control createContents(Composite parent) {
33

    
34
	        isRestoreTaxonNavigator = PreferencesUtil.isStoreNavigatorState();
35

    
36
            Composite secondComposite = new Composite(parent, SWT.NULL);
37
            secondComposite.setLayout(new GridLayout());
38

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

    
49
                    }
50
                }
51

    
52
            });
53

    
54

    
55
            Composite composite = new Composite(parent, SWT.NULL);
56
	        composite.setLayout(new GridLayout());
57

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

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

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

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

    
72
            int index = 0;
73

    
74
            if (!StringUtils.isBlank(PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()))){
75
                this.orderActivated = NavigatorOrderEnum.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()));
76

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

    
86
            // TODO remember last selection
87
            orderSelectionCombo.addSelectionListener(this);
88

    
89
            final Label description = new Label(parent, SWT.NONE);
90
            description.setText(Messages.OrderPreferencePage_NewNavigatorWindowRequired);
91

    
92
	        return composite;
93
	    }
94

    
95

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

    
105
		}
106

    
107

    
108
        /**
109
         * {@inheritDoc}
110
         */
111
        @Override
112
        public void widgetSelected(SelectionEvent e) {
113
            setApply(true);
114
            isSelectionChanged = true;
115
            for (NavigatorOrderEnum item : NavigatorOrderEnum.values()){
116
                if (item.getLabel().equalsIgnoreCase(orderSelectionCombo.getText())){
117
                    this.orderActivated = item;
118
                }
119
            }
120
        }
121

    
122

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

    
130
        }
131

    
132
        @Override
133
        protected void performDefaults() {
134
            activateRestoreNavigatorButton.setSelection(false);
135
            isRestoreTaxonNavigator = false;
136
            orderActivated = NavigatorOrderEnum.RankAndNameOrder;
137
            int index = 0;
138
            for (String itemLabel : orderSelectionCombo.getItems()){
139
                if (itemLabel.equalsIgnoreCase(orderActivated.getLabel())){
140
                    orderSelectionCombo.select(index);
141
                    break;
142
                }
143
                index++;
144
            }
145
            super.performDefaults();
146
        }
147

    
148

    
149
}
(25-25/41)