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
.menu
;
12 import org
.eclipse
.swt
.events
.SelectionAdapter
;
13 import org
.eclipse
.swt
.events
.SelectionEvent
;
14 import org
.eclipse
.swt
.layout
.GridLayout
;
15 import org
.eclipse
.swt
.widgets
.Button
;
16 import org
.eclipse
.swt
.widgets
.Combo
;
17 import org
.eclipse
.swt
.widgets
.Composite
;
18 import org
.eclipse
.swt
.widgets
.Control
;
20 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmPreference
;
21 import eu
.etaxonomy
.cdm
.model
.metadata
.PreferencePredicate
;
22 import eu
.etaxonomy
.cdm
.model
.term
.TermType
;
23 import eu
.etaxonomy
.taxeditor
.l10n
.Messages
;
24 import eu
.etaxonomy
.taxeditor
.preference
.GeneralTermPreferencePage
;
25 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
28 * <p>LanguageMenuPreferences class.</p>
34 public class LanguageMenuPreferences
extends GeneralTermPreferencePage
{
36 /** Constant <code>ID="eu.etaxonomy.taxeditor.preferences.lang"{trunked}</code> */
37 public final static String ID
= "eu.etaxonomy.taxeditor.preferences.languages"; //$NON-NLS-1$
38 protected Boolean isMultilanguageTextEditingCapability
;
39 protected CdmPreference multiLangugeActivatedPref
=null;
40 private boolean overrideActivated
;
42 Combo multiLanguageEditing
;
44 Button allowOverrideOrderButton
;
47 * <p>Constructor for LanguageMenuPreferences.</p>
49 public LanguageMenuPreferences() {
51 setPredicate(PreferencePredicate
.AvailableLanguages
);
52 type
= TermType
.Language
;
57 protected Control
createContents(Composite parent
) {
58 createSetMultiLanguageTextEditingCapability(parent
);
59 Composite result
= (Composite
) super.createContents(parent
);
63 private void createSetMultiLanguageTextEditingCapability(Composite parent
) {
64 //isMultilanguageTextEditingCapability = PreferencesUtil.getBooleanValue(PreferencePredicate.MultiLanguageTextEditing.getKey());
66 final Composite composite
= createComposite(parent
);
67 GridLayout layout
= new GridLayout();
68 layout
.numColumns
= 2;
70 composite
.setLayout(layout
);
72 multiLanguageEditing
= createBooleanCombo(composite
, Messages
.GeneralPreference_yes
, Messages
.GeneralPreference_no
, PreferencePredicate
.MultiLanguageTextEditing
, "Allow multi language editing", isAdminPreference
);
74 for (String itemLabel
: multiLanguageEditing
.getItems()) {
75 if (isMultilanguageTextEditingCapability
== null && itemLabel
.startsWith(Messages
.Preference_Use_Default
)) {
76 multiLanguageEditing
.select(index
);
79 if (isMultilanguageTextEditingCapability
!= null && itemLabel
.equals(Messages
.GeneralPreference_yes
) && isMultilanguageTextEditingCapability
){
80 multiLanguageEditing
.select(index
);
83 if (isMultilanguageTextEditingCapability
!= null && itemLabel
.equals(Messages
.GeneralPreference_no
) && !isMultilanguageTextEditingCapability
){
84 multiLanguageEditing
.select(index
);
89 if (!isAdminPreference
&& multiLangugeActivatedPref
!= null){
90 multiLanguageEditing
.setEnabled(multiLangugeActivatedPref
.isAllowOverride());
92 multiLanguageEditing
.addSelectionListener(this);
94 if (isAdminPreference
) {
95 allowOverrideOrderButton
= createAllowOverrideButton(composite
);
96 allowOverrideOrderButton
.setSelection(multiLangugeActivatedPref
!= null? multiLangugeActivatedPref
.isAllowOverride(): true);
97 //allowOverrideOrderAreasButton.setEnabled(prefAreaSort != null);
98 allowOverrideOrderButton
.addSelectionListener(new SelectionAdapter() {
100 public void widgetSelected(SelectionEvent e
) {
102 if (multiLangugeActivatedPref
== null){
103 multiLangugeActivatedPref
= CdmPreference
.NewTaxEditorInstance(PreferencePredicate
.MultiLanguageTextEditing
, PreferencePredicate
.MultiLanguageTextEditing
.getDefaultValue() != null ? PreferencePredicate
.MultiLanguageTextEditing
.getDefaultValue().toString(): null);
105 multiLangugeActivatedPref
.setAllowOverride(allowOverrideOrderButton
.getSelection());
112 public void getValues() {
113 isAdminPreference
= false;
114 setPreferenceStore(PreferencesUtil
.getPreferenceStore());
115 multiLangugeActivatedPref
= PreferencesUtil
.getPreferenceFromDB(PreferencePredicate
.MultiLanguageTextEditing
);
116 overrideActivated
= PreferencesUtil
.getBooleanValue(
117 PreferencesUtil
.prefOverrideKey(PreferencePredicate
.MultiLanguageTextEditing
.getKey()), true) != null? PreferencesUtil
.getBooleanValue(
118 PreferencesUtil
.prefOverrideKey(PreferencePredicate
.MultiLanguageTextEditing
.getKey()), true):false;
119 if (multiLangugeActivatedPref
!= null) {
120 if (multiLangugeActivatedPref
.isAllowOverride() ) {
121 if (overrideActivated
){
122 isMultilanguageTextEditingCapability
= PreferencesUtil
.getBooleanValue(PreferencePredicate
.MultiLanguageTextEditing
.getKey(), true);
126 isMultilanguageTextEditingCapability
= multiLangugeActivatedPref
.getValue() != null? Boolean
.valueOf(multiLangugeActivatedPref
.getValue()): null;
130 if(!overrideActivated
){
131 isMultilanguageTextEditingCapability
= null;
133 isMultilanguageTextEditingCapability
= PreferencesUtil
.getBooleanValue(PreferencePredicate
.MultiLanguageTextEditing
.getKey(), true);
135 multiLangugeActivatedPref
= CdmPreference
.NewTaxEditorInstance(PreferencePredicate
.MultiLanguageTextEditing
, PreferencePredicate
.MultiLanguageTextEditing
.getDefaultValue() != null ? PreferencePredicate
.MultiLanguageTextEditing
.getDefaultValue().toString(): null);
139 public void widgetSelected(SelectionEvent e
) {
141 if (e
.getSource().equals(multiLanguageEditing
)) {
142 String text
= multiLanguageEditing
.getText();
143 if(text
.startsWith(Messages
.Preference_Use_Default
)){
144 isMultilanguageTextEditingCapability
= null;
145 treeComposite
.setEnabled(multiLangugeActivatedPref
== null?
true: multiLangugeActivatedPref
.getValue() != null?Boolean
.parseBoolean(multiLangugeActivatedPref
.getValue().toString()): true);
146 if (!isAdminPreference
) {
147 overrideActivated
= false;
151 overrideActivated
= true;
153 if (text
.equals(Messages
.GeneralPreference_yes
)){
154 isMultilanguageTextEditingCapability
= true;
156 isMultilanguageTextEditingCapability
= false;
159 if (isMultilanguageTextEditingCapability
!= null){
160 treeComposite
.setEnabled(isMultilanguageTextEditingCapability
);
162 treeComposite
.setEnabled(multiLangugeActivatedPref
== null?
true: multiLangugeActivatedPref
.getValue() != null?Boolean
.parseBoolean(multiLangugeActivatedPref
.getValue().toString()): true);
169 public boolean performOk() {
173 if (isMultilanguageTextEditingCapability
!= null){
174 PreferencesUtil
.setBooleanValue(PreferencePredicate
.MultiLanguageTextEditing
.getKey(), isMultilanguageTextEditingCapability
);
176 PreferencesUtil
.setBooleanValue(
177 PreferencesUtil
.prefOverrideKey(PreferencePredicate
.MultiLanguageTextEditing
.getKey()),
179 return super.performOk();