Project

General

Profile

Download (4.73 KB) Statistics
| Branch: | Tag: | Revision:
1 35861667 n.hoffmann
/**
2
* Copyright (C) 2007 EDIT
3 bcad19b9 Cherian Mathew
* European Distributed Institute of Taxonomy
4 35861667 n.hoffmann
* http://www.e-taxonomy.eu
5 bcad19b9 Cherian Mathew
*
6 35861667 n.hoffmann
* 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 ea781c57 n.hoffmann
import java.util.List;
13
14 35861667 n.hoffmann
import org.eclipse.jface.preference.PreferencePage;
15
import org.eclipse.swt.SWT;
16
import org.eclipse.swt.events.SelectionAdapter;
17
import org.eclipse.swt.events.SelectionEvent;
18
import org.eclipse.swt.layout.GridData;
19
import org.eclipse.swt.layout.GridLayout;
20
import org.eclipse.swt.layout.RowLayout;
21
import org.eclipse.swt.widgets.Button;
22 ea781c57 n.hoffmann
import org.eclipse.swt.widgets.Combo;
23 35861667 n.hoffmann
import org.eclipse.swt.widgets.Composite;
24
import org.eclipse.swt.widgets.Control;
25 ea781c57 n.hoffmann
import org.eclipse.swt.widgets.Label;
26 35861667 n.hoffmann
import org.eclipse.ui.IWorkbench;
27
import org.eclipse.ui.IWorkbenchPreferencePage;
28
29 ea781c57 n.hoffmann
import eu.etaxonomy.cdm.model.common.Language;
30
import eu.etaxonomy.taxeditor.store.CdmStore;
31
32 35861667 n.hoffmann
/**
33
 * @author n.hoffmann
34
 * @created Dec 3, 2010
35
 * @version 1.0
36
 */
37 9d63eb10 Alexander Oppermann
public class LanguageRepresentationPreferencePage extends PreferencePage implements IWorkbenchPreferencePage{
38 35861667 n.hoffmann
39
	private boolean isMultilanguageTextEditingCapability;
40 ea781c57 n.hoffmann
	private Language globalLanguage;
41 bcad19b9 Cherian Mathew
42 35861667 n.hoffmann
	private Composite createComposite(Composite parent){
43
		Composite composite = new Composite(parent, SWT.NULL);
44
		composite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1));
45
		composite.setLayout(new RowLayout(SWT.HORIZONTAL));
46
		return composite;
47
	}
48 bcad19b9 Cherian Mathew
49 35861667 n.hoffmann
	/* (non-Javadoc)
50
	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
51
	 */
52
	@Override
53
	protected Control createContents(Composite parent) {
54
		Composite container = new Composite(parent, SWT.NULL);
55
		final GridLayout gridLayout = new GridLayout();
56
		container.setLayout(gridLayout);
57 bcad19b9 Cherian Mathew
58 ea781c57 n.hoffmann
		createSetDefaultLanguage(container);
59 bcad19b9 Cherian Mathew
60 ea781c57 n.hoffmann
		createSetMultiLanguageTextEditingCapability(container);
61 bcad19b9 Cherian Mathew
62 35861667 n.hoffmann
		return container;
63 bcad19b9 Cherian Mathew
64
65 35861667 n.hoffmann
	}
66
67 ea781c57 n.hoffmann
	/**
68
	 * @param container
69
	 */
70
	private void createSetDefaultLanguage(Composite parent) {
71
		globalLanguage = PreferencesUtil.getGlobalLanguage();
72 bcad19b9 Cherian Mathew
73
		if(globalLanguage == null) {
74
		    return;
75
		}
76
77 ea781c57 n.hoffmann
		int curentSelectionIndex = 0;
78 bcad19b9 Cherian Mathew
79 ea781c57 n.hoffmann
		final Composite composite = createComposite(parent);
80
		composite.setLayout(new RowLayout(1));
81 bcad19b9 Cherian Mathew
82 ea781c57 n.hoffmann
		final Label label = new Label(composite, SWT.NONE);
83
		label.setText("Choose the global language that will be used throughout the editor to get representations in.");
84 bcad19b9 Cherian Mathew
85
		final Combo combo_globalLanguage = new Combo(composite, SWT.NONE);
86
87 b9a0d300 l.morris
		List<Language> preferredLanguages = CdmStore.getTermManager().getPreferredTerms(Language.class);
88 bcad19b9 Cherian Mathew
89 ea781c57 n.hoffmann
		for(int i = 0; i < preferredLanguages.size(); i++){
90
			Language language = preferredLanguages.get(i);
91
			combo_globalLanguage.add(language.getLabel(), i);
92
			if(language.equals(globalLanguage)){
93
				curentSelectionIndex = i;
94
			}
95
		}
96 bcad19b9 Cherian Mathew
97 ea781c57 n.hoffmann
		combo_globalLanguage.select(curentSelectionIndex);
98 bcad19b9 Cherian Mathew
99 ea781c57 n.hoffmann
		combo_globalLanguage.addSelectionListener(new SelectionAdapter() {
100
			/* (non-Javadoc)
101
			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
102
			 */
103
			@Override
104
			public void widgetSelected(SelectionEvent e) {
105
				int selectionIndex = combo_globalLanguage.getSelectionIndex();
106 16583742 Cherian Mathew
				globalLanguage = CdmStore.getCurrentApplicationConfiguration().getTermService().getLanguageByLabel(combo_globalLanguage.getItem(selectionIndex));
107 ea781c57 n.hoffmann
			}
108 bcad19b9 Cherian Mathew
		});
109 ea781c57 n.hoffmann
	}
110
111 35861667 n.hoffmann
	/**
112 bcad19b9 Cherian Mathew
	 *
113 35861667 n.hoffmann
	 */
114
	private void createSetMultiLanguageTextEditingCapability(Composite parent) {
115
		isMultilanguageTextEditingCapability = getPreferenceStore().getBoolean(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY);
116 bcad19b9 Cherian Mathew
117 35861667 n.hoffmann
		final Composite composite = createComposite(parent);
118 bcad19b9 Cherian Mathew
119
		final Button button_toggle = new Button(composite, SWT.CHECK);
120
121
122 35861667 n.hoffmann
		button_toggle.setText("Enable Multiple Language Editing Capability");
123 bcad19b9 Cherian Mathew
124 35861667 n.hoffmann
		button_toggle.setSelection(isMultilanguageTextEditingCapability);
125 bcad19b9 Cherian Mathew
126
127 35861667 n.hoffmann
		button_toggle.addSelectionListener(new SelectionAdapter(){
128
			/* (non-Javadoc)
129
			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
130
			 */
131
			@Override
132
			public void widgetSelected(SelectionEvent e) {
133
				isMultilanguageTextEditingCapability = button_toggle.getSelection();
134
			}
135
		});
136
	}
137
138
	/* (non-Javadoc)
139
	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
140
	 */
141
	@Override
142
	public void init(IWorkbench workbench) {
143
		setPreferenceStore(PreferencesUtil.getPreferenceStore());
144
	}
145
146
	/* (non-Javadoc)
147
	 * @see org.eclipse.jface.preference.PreferencePage#performOk()
148
	 */
149
	@Override
150
	public boolean performOk() {
151
		getPreferenceStore().setValue(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY, isMultilanguageTextEditingCapability);
152 ea781c57 n.hoffmann
		PreferencesUtil.setGlobalLanguage(globalLanguage);
153 bcad19b9 Cherian Mathew
154 35861667 n.hoffmann
		return super.performOk();
155
	}
156
}