Project

General

Profile

Download (4.19 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

    
10
package eu.etaxonomy.taxeditor.preference;
11

    
12
import java.util.List;
13

    
14
import org.eclipse.swt.SWT;
15
import org.eclipse.swt.events.SelectionAdapter;
16
import org.eclipse.swt.events.SelectionEvent;
17
import org.eclipse.swt.layout.GridLayout;
18
import org.eclipse.swt.layout.RowLayout;
19
import org.eclipse.swt.widgets.Button;
20
import org.eclipse.swt.widgets.Combo;
21
import org.eclipse.swt.widgets.Composite;
22
import org.eclipse.swt.widgets.Control;
23
import org.eclipse.swt.widgets.Label;
24

    
25
import eu.etaxonomy.cdm.model.common.Language;
26
import eu.etaxonomy.taxeditor.l10n.Messages;
27
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
28
import eu.etaxonomy.taxeditor.store.CdmStore;
29

    
30
/**
31
 * @author n.hoffmann
32
 * @created Dec 3, 2010
33
 * @version 1.0
34
 */
35
public class LanguageRepresentationPreferencePage extends CdmPreferencePage{
36

    
37
	private boolean isMultilanguageTextEditingCapability;
38
	private Language globalLanguage;
39

    
40
//	private Composite createComposite(Composite parent){
41
//		Composite composite = new Composite(parent, SWT.NULL);
42
//		composite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1));
43
//		composite.setLayout(new RowLayout(SWT.HORIZONTAL));
44
//		return composite;
45
//	}
46

    
47
	@Override
48
	protected Control createContents(Composite parent) {
49
		Composite container = new Composite(parent, SWT.NULL);
50
		final GridLayout gridLayout = new GridLayout();
51
		container.setLayout(gridLayout);
52

    
53
		createSetDefaultLanguage(container);
54

    
55
		createSetMultiLanguageTextEditingCapability(container);
56

    
57
		return container;
58

    
59

    
60
	}
61

    
62
	private void createSetDefaultLanguage(Composite parent) {
63
		globalLanguage = PreferencesUtil.getGlobalLanguage();
64

    
65
		if(globalLanguage == null) {
66
		    return;
67
		}
68

    
69
		int curentSelectionIndex = 0;
70

    
71
		final Composite composite = createComposite(parent);
72
		composite.setLayout(new RowLayout(1));
73

    
74
		final Label label = new Label(composite, SWT.NONE);
75
		label.setText(Messages.LanguageRepresentationPreferencePage_global);
76

    
77
		final Combo combo_globalLanguage = new Combo(composite, SWT.NONE);
78

    
79
		List<Language> preferredLanguages = CdmStore.getTermManager().getPreferredTerms(Language.class);
80

    
81
		for(int i = 0; i < preferredLanguages.size(); i++){
82
			Language language = preferredLanguages.get(i);
83
			combo_globalLanguage.add(language.getLabel(), i);
84
			if(language.equals(globalLanguage)){
85
				curentSelectionIndex = i;
86
			}
87
		}
88

    
89
		combo_globalLanguage.select(curentSelectionIndex);
90

    
91
		combo_globalLanguage.addSelectionListener(new SelectionAdapter() {
92
			/* (non-Javadoc)
93
			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
94
			 */
95
			@Override
96
			public void widgetSelected(SelectionEvent e) {
97
			    setApply(true);
98
				int selectionIndex = combo_globalLanguage.getSelectionIndex();
99
				globalLanguage = CdmStore.getCurrentApplicationConfiguration().getTermService().getLanguageByLabel(combo_globalLanguage.getItem(selectionIndex));
100
			}
101
		});
102
	}
103

    
104
	private void createSetMultiLanguageTextEditingCapability(Composite parent) {
105
		isMultilanguageTextEditingCapability = getPreferenceStore().getBoolean(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY);
106

    
107
		final Composite composite = createComposite(parent);
108

    
109
		final Button button_toggle = new Button(composite, SWT.CHECK);
110

    
111

    
112
		button_toggle.setText(Messages.LanguageRepresentationPreferencePage_enable);
113

    
114
		button_toggle.setSelection(isMultilanguageTextEditingCapability);
115

    
116

    
117
		button_toggle.addSelectionListener(new SelectionAdapter(){
118
			/* (non-Javadoc)
119
			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
120
			 */
121
			@Override
122
			public void widgetSelected(SelectionEvent e) {
123
			    setApply(true);
124
				isMultilanguageTextEditingCapability = button_toggle.getSelection();
125
			}
126
		});
127
	}
128

    
129
	@Override
130
	public boolean performOk() {
131
		getPreferenceStore().setValue(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY, isMultilanguageTextEditingCapability);
132
		PreferencesUtil.setGlobalLanguage(globalLanguage);
133

    
134
		return super.performOk();
135
	}
136
}
(17-17/41)