Project

General

Profile

Download (4.74 KB) Statistics
| Branch: | Tag: | Revision:
1 35861667 n.hoffmann
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4 bcad19b9 Cherian Mathew
* European Distributed Institute of Taxonomy
5 35861667 n.hoffmann
* http://www.e-taxonomy.eu
6 bcad19b9 Cherian Mathew
*
7 35861667 n.hoffmann
* 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 ea781c57 n.hoffmann
import java.util.List;
14
15 35861667 n.hoffmann
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 ea781c57 n.hoffmann
import org.eclipse.swt.widgets.Combo;
24 35861667 n.hoffmann
import org.eclipse.swt.widgets.Composite;
25
import org.eclipse.swt.widgets.Control;
26 ea781c57 n.hoffmann
import org.eclipse.swt.widgets.Label;
27 35861667 n.hoffmann
import org.eclipse.ui.IWorkbench;
28
import org.eclipse.ui.IWorkbenchPreferencePage;
29
30 ea781c57 n.hoffmann
import eu.etaxonomy.cdm.model.common.Language;
31
import eu.etaxonomy.taxeditor.store.CdmStore;
32
33 35861667 n.hoffmann
/**
34
 * @author n.hoffmann
35
 * @created Dec 3, 2010
36
 * @version 1.0
37
 */
38 9d63eb10 Alexander Oppermann
public class LanguageRepresentationPreferencePage extends PreferencePage implements IWorkbenchPreferencePage{
39 35861667 n.hoffmann
40
	private boolean isMultilanguageTextEditingCapability;
41 ea781c57 n.hoffmann
	private Language globalLanguage;
42 bcad19b9 Cherian Mathew
43 35861667 n.hoffmann
	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 bcad19b9 Cherian Mathew
50 35861667 n.hoffmann
	/* (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 bcad19b9 Cherian Mathew
59 ea781c57 n.hoffmann
		createSetDefaultLanguage(container);
60 bcad19b9 Cherian Mathew
61 ea781c57 n.hoffmann
		createSetMultiLanguageTextEditingCapability(container);
62 bcad19b9 Cherian Mathew
63 35861667 n.hoffmann
		return container;
64 bcad19b9 Cherian Mathew
65
66 35861667 n.hoffmann
	}
67
68 ea781c57 n.hoffmann
	/**
69
	 * @param container
70
	 */
71
	private void createSetDefaultLanguage(Composite parent) {
72
		globalLanguage = PreferencesUtil.getGlobalLanguage();
73 bcad19b9 Cherian Mathew
74
		if(globalLanguage == null) {
75
		    return;
76
		}
77
78 ea781c57 n.hoffmann
		int curentSelectionIndex = 0;
79 bcad19b9 Cherian Mathew
80 ea781c57 n.hoffmann
		final Composite composite = createComposite(parent);
81
		composite.setLayout(new RowLayout(1));
82 bcad19b9 Cherian Mathew
83 ea781c57 n.hoffmann
		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 bcad19b9 Cherian Mathew
86
		final Combo combo_globalLanguage = new Combo(composite, SWT.NONE);
87
88 b9a0d300 l.morris
		List<Language> preferredLanguages = CdmStore.getTermManager().getPreferredTerms(Language.class);
89 bcad19b9 Cherian Mathew
90 ea781c57 n.hoffmann
		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 bcad19b9 Cherian Mathew
98 ea781c57 n.hoffmann
		combo_globalLanguage.select(curentSelectionIndex);
99 bcad19b9 Cherian Mathew
100 ea781c57 n.hoffmann
		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 16583742 Cherian Mathew
				globalLanguage = CdmStore.getCurrentApplicationConfiguration().getTermService().getLanguageByLabel(combo_globalLanguage.getItem(selectionIndex));
108 ea781c57 n.hoffmann
			}
109 bcad19b9 Cherian Mathew
		});
110 ea781c57 n.hoffmann
	}
111
112 35861667 n.hoffmann
	/**
113 bcad19b9 Cherian Mathew
	 *
114 35861667 n.hoffmann
	 */
115
	private void createSetMultiLanguageTextEditingCapability(Composite parent) {
116
		isMultilanguageTextEditingCapability = getPreferenceStore().getBoolean(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY);
117 bcad19b9 Cherian Mathew
118 35861667 n.hoffmann
		final Composite composite = createComposite(parent);
119 bcad19b9 Cherian Mathew
120
		final Button button_toggle = new Button(composite, SWT.CHECK);
121
122
123 35861667 n.hoffmann
		button_toggle.setText("Enable Multiple Language Editing Capability");
124 bcad19b9 Cherian Mathew
125 35861667 n.hoffmann
		button_toggle.setSelection(isMultilanguageTextEditingCapability);
126 bcad19b9 Cherian Mathew
127
128 35861667 n.hoffmann
		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 ea781c57 n.hoffmann
		PreferencesUtil.setGlobalLanguage(globalLanguage);
154 bcad19b9 Cherian Mathew
155 35861667 n.hoffmann
		return super.performOk();
156
	}
157
}