2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.preference
;
12 import java
.util
.List
;
13 import java
.util
.UUID
;
15 import org
.eclipse
.swt
.SWT
;
16 import org
.eclipse
.swt
.custom
.CLabel
;
17 import org
.eclipse
.swt
.events
.SelectionAdapter
;
18 import org
.eclipse
.swt
.events
.SelectionEvent
;
19 import org
.eclipse
.swt
.layout
.GridLayout
;
20 import org
.eclipse
.swt
.widgets
.Button
;
21 import org
.eclipse
.swt
.widgets
.Combo
;
22 import org
.eclipse
.swt
.widgets
.Composite
;
23 import org
.eclipse
.swt
.widgets
.Control
;
24 import org
.eclipse
.swt
.widgets
.Label
;
26 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
27 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmPreference
;
28 import eu
.etaxonomy
.cdm
.model
.metadata
.PreferencePredicate
;
29 import eu
.etaxonomy
.cdm
.model
.term
.TermType
;
30 import eu
.etaxonomy
.taxeditor
.l10n
.Messages
;
31 import eu
.etaxonomy
.taxeditor
.preference
.menu
.CdmPreferencePage
;
32 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
36 * @created Dec 3, 2010
39 public class LanguageRepresentationPreferencePage
extends CdmPreferencePage
{
42 protected Language globalLanguage
;
43 public final static String ID
= "eu.etaxonomy.taxeditor.preferences.termLanguages"; //$NON-NLS-1$
45 protected CdmPreference termLanguagePref
=null;
46 protected boolean overrideActivated
;
47 protected Button allowOverrideOrderButton
;
48 private String defaultSettings
= "Use default settings";
49 protected Combo combo_globalLanguage
;
51 // private Composite createComposite(Composite parent){
52 // Composite composite = new Composite(parent, SWT.NULL);
53 // composite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1));
54 // composite.setLayout(new RowLayout(SWT.HORIZONTAL));
59 protected Control
createContents(Composite parent
) {
60 Composite container
= new Composite(parent
, SWT
.NULL
);
61 final GridLayout gridLayout
= new GridLayout();
62 container
.setLayout(gridLayout
);
64 createSetDefaultLanguage(container
);
66 // createSetMultiLanguageTextEditingCapability(container);
73 private void createSetDefaultLanguage(Composite parent
) {
76 int curentSelectionIndex
= 0;
78 final Composite composite
= createComposite(parent
);
79 GridLayout layout
= new GridLayout();
80 layout
.numColumns
= 2;
81 composite
.setLayout(layout
);
83 if (isAdminPreference
|| !isAdminPreference
&& this.termLanguagePref
.isAllowOverride()) {
84 final Label label
= new Label(composite
, SWT
.NONE
);
85 label
.setText(Messages
.LanguageRepresentationPreferencePage_global
);
86 final Label labelFree
= new Label(composite
, SWT
.NONE
);
87 // label.setText(Messages.LanguageRepresentationPreferencePage_global);
89 Combo combo_globalLanguage
= new Combo(composite
, SWT
.NONE
);
91 List
<Language
> preferredLanguages
= CdmStore
.getTermManager().getPreferredTerms(TermType
.Language
);
96 for(int i
= 0; i
< preferredLanguages
.size(); i
++){
97 Language language
= preferredLanguages
.get(i
);
98 combo_globalLanguage
.add(language
.getLabel(), i
);
99 if(language
.equals(globalLanguage
)){
100 curentSelectionIndex
= i
;
103 if (!isAdminPreference
) {
104 combo_globalLanguage
.add("Use default settings", 0);
105 curentSelectionIndex
++;
108 combo_globalLanguage
.select(curentSelectionIndex
);
110 combo_globalLanguage
.addSelectionListener(new SelectionAdapter() {
112 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
115 public void widgetSelected(SelectionEvent e
) {
117 int selectionIndex
= combo_globalLanguage
.getSelectionIndex();
118 if (combo_globalLanguage
.getItem(selectionIndex
).equals(defaultSettings
)){
119 overrideActivated
= false;
121 globalLanguage
= CdmStore
.getCurrentApplicationConfiguration().getTermService().getLanguageByLabel(combo_globalLanguage
.getItem(selectionIndex
));
122 overrideActivated
= true;
128 //changing the Term Language locally is not allowed
129 final CLabel description
= new CLabel(parent
, SWT
.NULL
);
130 description
.setText(Messages
.LanguageRepresentationPreferencePage_not_available
);
131 this.setDefaultButtonActivated(false);
135 if (isAdminPreference
) {
136 allowOverrideOrderButton
= createAllowOverrideButton(composite
);
137 allowOverrideOrderButton
.setSelection(termLanguagePref
!= null? termLanguagePref
.isAllowOverride(): true);
138 //allowOverrideOrderAreasButton.setEnabled(prefAreaSort != null);
139 allowOverrideOrderButton
.addSelectionListener(new SelectionAdapter() {
141 public void widgetSelected(SelectionEvent e
) {
143 if (termLanguagePref
== null){
144 termLanguagePref
= CdmPreference
.NewTaxEditorInstance(PreferencePredicate
.TermLanguage
, PreferencePredicate
.TermLanguage
.getDefaultValue() != null ? PreferencePredicate
.TermLanguage
.getDefaultValue().toString(): null);
146 termLanguagePref
.setAllowOverride(allowOverrideOrderButton
.getSelection());
154 public void getValues() {
155 isAdminPreference
= false;
156 setPreferenceStore(PreferencesUtil
.getPreferenceStore());
157 termLanguagePref
= PreferencesUtil
.getPreferenceFromDB(PreferencePredicate
.TermLanguage
);
158 overrideActivated
= PreferencesUtil
.getBooleanValue(
159 PreferencesUtil
.prefOverrideKey(PreferencePredicate
.TermLanguage
.getKey()), true) != null? PreferencesUtil
.getBooleanValue(
160 PreferencesUtil
.prefOverrideKey(PreferencePredicate
.TermLanguage
.getKey()), true):false;
161 if (termLanguagePref
!= null) {
162 if (termLanguagePref
.isAllowOverride() && overrideActivated
) {
163 String globalLanguageUUIDString
= PreferencesUtil
.getStringValue(PreferencePredicate
.TermLanguage
.getKey(), true);
164 if (globalLanguageUUIDString
!= null) {
165 globalLanguage
= Language
.getLanguageFromUuid(UUID
.fromString( globalLanguageUUIDString
));
167 globalLanguage
= Language
.getDefaultLanguage();
169 //globalLanguage = Language.getLanguageFromUuid(UUID.fromString(PreferencesUtil.getStringValue(PreferencePredicate.TermLanguage.getKey(), true)));
171 globalLanguage
= termLanguagePref
.getValue() != null? Language
.getLanguageFromUuid(UUID
.fromString(termLanguagePref
.getValue())): CdmStore
.getDefaultLanguage();
175 if(!overrideActivated
){
176 globalLanguage
= null;
178 String globalLanguageUUIDString
= PreferencesUtil
.getStringValue(PreferencePredicate
.TermLanguage
.getKey(), true);
179 if (globalLanguageUUIDString
!= null) {
180 globalLanguage
= Language
.getLanguageFromUuid(UUID
.fromString( globalLanguageUUIDString
));
182 globalLanguage
= Language
.getDefaultLanguage();
185 termLanguagePref
= CdmPreference
.NewTaxEditorInstance(PreferencePredicate
.TermLanguage
, PreferencePredicate
.TermLanguage
.getDefaultValue() != null ? PreferencePredicate
.TermLanguage
.getDefaultValue().toString(): null);
190 public boolean performOk() {
194 //check whether a language or the option to use the db selection was chosen
195 PreferencesUtil
.setGlobalLanguage(globalLanguage
);
196 // if (overrideActivated) {
197 PreferencesUtil
.setBooleanValue(PreferencesUtil
.createOverridePreferenceString(PreferencePredicate
.TermLanguage
.getKey()), overrideActivated
);
199 return super.performOk();