Project

General

Profile

« Previous | Next » 

Revision 69213a6e

Added by Katja Luther about 4 years ago

ref #8562: add admin preference page for multilanguage support

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/LanguageMenuPreferences.java
9 9

  
10 10
package eu.etaxonomy.taxeditor.preference.menu;
11 11

  
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;
19

  
20
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
12 21
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
13 22
import eu.etaxonomy.cdm.model.term.TermType;
23
import eu.etaxonomy.taxeditor.l10n.Messages;
14 24
import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
25
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
15 26

  
16 27
/**
17 28
 * <p>LanguageMenuPreferences class.</p>
......
24 35

  
25 36
	/** Constant <code>ID="eu.etaxonomy.taxeditor.preferences.lang"{trunked}</code> */
26 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;
41

  
42
    Combo multiLanguageEditing;
43

  
44
    Button allowOverrideOrderButton;
27 45

  
28 46
	/**
29 47
	 * <p>Constructor for LanguageMenuPreferences.</p>
......
32 50
	    super();
33 51
        setPredicate(PreferencePredicate.AvailableLanguages);
34 52
        type = TermType.Language;
53

  
35 54
	}
36 55

  
56
	@Override
57
    protected Control createContents(Composite parent) {
58
	    createSetMultiLanguageTextEditingCapability(parent);
59
	    Composite result = (Composite) super.createContents(parent);
60
	    return result;
61
	}
62

  
63
	private void createSetMultiLanguageTextEditingCapability(Composite parent) {
64
        //isMultilanguageTextEditingCapability = PreferencesUtil.getBooleanValue(PreferencePredicate.MultiLanguageTextEditing.getKey());
65
	    getValues();
66
        final Composite composite = createComposite(parent);
67
        GridLayout layout = new GridLayout();
68
        layout.numColumns = 2;
69

  
70
        composite.setLayout(layout);
71

  
72
        multiLanguageEditing = createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.MultiLanguageTextEditing, "Allow multi language editing", isAdminPreference);
73
        int index = 0;
74
        for (String itemLabel : multiLanguageEditing.getItems()) {
75
            if (isMultilanguageTextEditingCapability == null && itemLabel.startsWith(Messages.Preference_Use_Default)) {
76
                multiLanguageEditing.select(index);
77
                break;
78
            }
79
            if (isMultilanguageTextEditingCapability != null && itemLabel.equals(Messages.GeneralPreference_yes) && isMultilanguageTextEditingCapability){
80
                multiLanguageEditing.select(index);
81
                break;
82
            }
83
            if (isMultilanguageTextEditingCapability != null && itemLabel.equals(Messages.GeneralPreference_no) && !isMultilanguageTextEditingCapability){
84
                multiLanguageEditing.select(index);
85
                break;
86
            }
87
            index++;
88
        }
89
        if (!isAdminPreference && multiLangugeActivatedPref != null){
90
            multiLanguageEditing.setEnabled(multiLangugeActivatedPref.isAllowOverride());
91
        }
92
        multiLanguageEditing.addSelectionListener(this);
93

  
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() {
99
                @Override
100
                public void widgetSelected(SelectionEvent e) {
101
                    setApply(true);
102
                    if (multiLangugeActivatedPref == null){
103
                        multiLangugeActivatedPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.MultiLanguageTextEditing, PreferencePredicate.MultiLanguageTextEditing.getDefaultValue() != null ?  PreferencePredicate.MultiLanguageTextEditing.getDefaultValue().toString(): null);
104
                    }
105
                    multiLangugeActivatedPref.setAllowOverride(allowOverrideOrderButton.getSelection());
106
                }
107
            });
108
        }
109
    }
110

  
111
	 @Override
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);
123
                    }
124

  
125
                } else {
126
                    isMultilanguageTextEditingCapability = multiLangugeActivatedPref.getValue() != null? Boolean.valueOf(multiLangugeActivatedPref.getValue()): null;
127
                }
128

  
129
            } else {
130
                if(!overrideActivated){
131
                    isMultilanguageTextEditingCapability = null;
132
                }else{
133
                    isMultilanguageTextEditingCapability = PreferencesUtil.getBooleanValue(PreferencePredicate.MultiLanguageTextEditing.getKey(), true);
134
                }
135
                multiLangugeActivatedPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.MultiLanguageTextEditing, PreferencePredicate.MultiLanguageTextEditing.getDefaultValue() != null ?  PreferencePredicate.MultiLanguageTextEditing.getDefaultValue().toString(): null);
136
            }
137
	 }
138
	 @Override
139
	 public void widgetSelected(SelectionEvent e) {
140
        setApply(true);
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;
148
                }
149
                return;
150
            }
151
            overrideActivated = true;
152

  
153
            if (text.equals(Messages.GeneralPreference_yes)){
154
                isMultilanguageTextEditingCapability = true;
155
            }else{
156
                isMultilanguageTextEditingCapability = false;
157
            }
158

  
159
            if (isMultilanguageTextEditingCapability != null){
160
                treeComposite.setEnabled(isMultilanguageTextEditingCapability);
161
            }else{
162
                treeComposite.setEnabled(multiLangugeActivatedPref == null? true: multiLangugeActivatedPref.getValue() != null?Boolean.parseBoolean(multiLangugeActivatedPref.getValue().toString()): true);
163
            }
164

  
165
        }
166
     }
37 167

  
168
	@Override
169
    public boolean performOk() {
170
        if (!isApply()){
171
            return true;
172
        }
173
        if (isMultilanguageTextEditingCapability!= null){
174
            PreferencesUtil.setBooleanValue(PreferencePredicate.MultiLanguageTextEditing.getKey(), isMultilanguageTextEditingCapability);
175
        }
176
        PreferencesUtil.setBooleanValue(
177
                PreferencesUtil.prefOverrideKey(PreferencePredicate.MultiLanguageTextEditing.getKey()),
178
                overrideActivated);
179
        return super.performOk();
180
    }
38 181
}

Also available in: Unified diff