Project

General

Profile

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

    
11
package eu.etaxonomy.taxeditor.preference;
12

    
13
import java.util.List;
14

    
15
import org.eclipse.jface.preference.PreferencePage;
16
import org.eclipse.swt.SWT;
17
import org.eclipse.swt.events.SelectionAdapter;
18
import org.eclipse.swt.events.SelectionEvent;
19
import org.eclipse.swt.layout.GridData;
20
import org.eclipse.swt.layout.GridLayout;
21
import org.eclipse.swt.layout.RowLayout;
22
import org.eclipse.swt.widgets.Button;
23
import org.eclipse.swt.widgets.Combo;
24
import org.eclipse.swt.widgets.Composite;
25
import org.eclipse.swt.widgets.Control;
26
import org.eclipse.swt.widgets.Label;
27
import org.eclipse.ui.IWorkbench;
28
import org.eclipse.ui.IWorkbenchPreferencePage;
29

    
30
import eu.etaxonomy.cdm.model.common.Language;
31
import eu.etaxonomy.taxeditor.store.CdmStore;
32

    
33
/**
34
 * @author n.hoffmann
35
 * @created Dec 3, 2010
36
 * @version 1.0
37
 */
38
public class LanguageRepresentationPreferencePage extends PreferencePage implements IWorkbenchPreferencePage{
39

    
40
	private boolean isMultilanguageTextEditingCapability;
41
	private Language globalLanguage;
42

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

    
50
	/* (non-Javadoc)
51
	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
52
	 */
53
	@Override
54
	protected Control createContents(Composite parent) {
55
		Composite container = new Composite(parent, SWT.NULL);
56
		final GridLayout gridLayout = new GridLayout();
57
		container.setLayout(gridLayout);
58

    
59
		createSetDefaultLanguage(container);
60

    
61
		createSetMultiLanguageTextEditingCapability(container);
62

    
63
		return container;
64

    
65

    
66
	}
67

    
68
	/**
69
	 * @param container
70
	 */
71
	private void createSetDefaultLanguage(Composite parent) {
72
		globalLanguage = PreferencesUtil.getGlobalLanguage();
73

    
74
		if(globalLanguage == null) {
75
		    return;
76
		}
77

    
78
		int curentSelectionIndex = 0;
79

    
80
		final Composite composite = createComposite(parent);
81
		composite.setLayout(new RowLayout(1));
82

    
83
		final Label label = new Label(composite, SWT.NONE);
84
		label.setText("Choose the global language that will be used throughout the editor to get representations in.");
85

    
86
		final Combo combo_globalLanguage = new Combo(composite, SWT.NONE);
87

    
88
		List<Language> preferredLanguages = CdmStore.getTermManager().getPreferredTerms(Language.class);
89

    
90
		for(int i = 0; i < preferredLanguages.size(); i++){
91
			Language language = preferredLanguages.get(i);
92
			combo_globalLanguage.add(language.getLabel(), i);
93
			if(language.equals(globalLanguage)){
94
				curentSelectionIndex = i;
95
			}
96
		}
97

    
98
		combo_globalLanguage.select(curentSelectionIndex);
99

    
100
		combo_globalLanguage.addSelectionListener(new SelectionAdapter() {
101
			/* (non-Javadoc)
102
			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
103
			 */
104
			@Override
105
			public void widgetSelected(SelectionEvent e) {
106
				int selectionIndex = combo_globalLanguage.getSelectionIndex();
107
				globalLanguage = CdmStore.getCurrentApplicationConfiguration().getTermService().getLanguageByLabel(combo_globalLanguage.getItem(selectionIndex));
108
			}
109
		});
110
	}
111

    
112
	/**
113
	 *
114
	 */
115
	private void createSetMultiLanguageTextEditingCapability(Composite parent) {
116
		isMultilanguageTextEditingCapability = getPreferenceStore().getBoolean(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY);
117

    
118
		final Composite composite = createComposite(parent);
119

    
120
		final Button button_toggle = new Button(composite, SWT.CHECK);
121

    
122

    
123
		button_toggle.setText("Enable Multiple Language Editing Capability");
124

    
125
		button_toggle.setSelection(isMultilanguageTextEditingCapability);
126

    
127

    
128
		button_toggle.addSelectionListener(new SelectionAdapter(){
129
			/* (non-Javadoc)
130
			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
131
			 */
132
			@Override
133
			public void widgetSelected(SelectionEvent e) {
134
				isMultilanguageTextEditingCapability = button_toggle.getSelection();
135
			}
136
		});
137
	}
138

    
139
	/* (non-Javadoc)
140
	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
141
	 */
142
	@Override
143
	public void init(IWorkbench workbench) {
144
		setPreferenceStore(PreferencesUtil.getPreferenceStore());
145
	}
146

    
147
	/* (non-Javadoc)
148
	 * @see org.eclipse.jface.preference.PreferencePage#performOk()
149
	 */
150
	@Override
151
	public boolean performOk() {
152
		getPreferenceStore().setValue(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY, isMultilanguageTextEditingCapability);
153
		PreferencesUtil.setGlobalLanguage(globalLanguage);
154

    
155
		return super.performOk();
156
	}
157
}
(14-14/28)