Project

General

Profile

« Previous | Next » 

Revision 3f6dbb50

Added by Katja Luther almost 4 years ago

fix problems with Nomenclatural code preference

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java
13 13
import java.util.Map;
14 14
import java.util.Map.Entry;
15 15

  
16
import org.apache.commons.lang.StringUtils;
17 16
import org.eclipse.swt.SWT;
18 17
import org.eclipse.swt.custom.CLabel;
19 18
import org.eclipse.swt.events.SelectionAdapter;
......
23 22
import org.eclipse.swt.widgets.Composite;
24 23
import org.eclipse.swt.widgets.Control;
25 24

  
26
import eu.etaxonomy.cdm.api.application.ICdmRepository;
27
import eu.etaxonomy.cdm.api.service.IPreferenceService;
28 25
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
29
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
30 26
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
31
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
32 27
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
33 28
import eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.IE4AdminPreferencePage;
34 29
import eu.etaxonomy.taxeditor.l10n.Messages;
......
205 200
	@Override
206 201
    protected void getValues(){
207 202
	    isAdminPreference = false;
208
	    ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
209
        if (controller != null){
210
            IPreferenceService service = controller.getPreferenceService();
211
            PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
212
            pref = service.find(key);
213
            if (pref != null){
203
	    pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NomenclaturalCode);
204
        override = PreferencesUtil.getBooleanValue(
205
                PreferencesUtil.prefOverrideKey(PreferencePredicate.NomenclaturalCode.getKey()), true) != null? PreferencesUtil.getBooleanValue(
206
                        PreferencesUtil.prefOverrideKey(PreferencePredicate.NomenclaturalCode.getKey()), true):false;
207
        String nomString = null;
208
        if (pref != null) {
209
            if (pref.isAllowOverride() ) {
210
                if (override){
211
                    nomString = PreferencesUtil.getStringValue(PreferencePredicate.NomenclaturalCode.getKey(), true);
212
                }
214 213

  
215
                allowOverride = pref.isAllowOverride();
216
            }else{
217
                pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.NomenclaturalCode, null);
218
                allowOverride = true;
214
            } else {
215
                nomString = pref.getValue() != null? String.valueOf(pref.getValue()): null;
219 216
            }
220 217

  
218
        } else {
219
            if(!override){
220
                actualCode = null;
221
            }else{
222
                nomString = PreferencesUtil.getStringValue(PreferencePredicate.NomenclaturalCode.getKey(), true);
223

  
224
            }
225
            pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NomenclaturalCode, PreferencePredicate.NomenclaturalCode.getDefaultValue() != null ?  PreferencePredicate.NomenclaturalCode.getDefaultValue().toString(): null);
221 226
        }
222
        String stringValue = PreferencesUtil.getStringValue(PreferencePredicate.NomenclaturalCode.getKey(), true);
223
        Boolean overridePref = PreferencesUtil.getOverrideForPreference(PreferencePredicate.NomenclaturalCode.getKey());
224
        override = overridePref != null? overridePref:false;
225
        if (!StringUtils.isBlank(stringValue) && override){
226
            actualCode = NomenclaturalCode.fromString(stringValue);
227
        }else{
228
            actualCode = null;
227
        if (nomString != null){
228
            actualCode = NomenclaturalCode.fromString(nomString);
229 229
        }
230 230

  
231 231

  
232

  
233

  
232 234
	}
233 235

  
234 236
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
454 454

  
455 455
    public static NomenclaturalCode getPreferredNomenclaturalCode() {
456 456

  
457
        CdmPreference pref = getPreferenceFromDB(PreferencePredicate.NomenclaturalCode);
458

  
459
        String preferredCode;
460
        if(pref == null || (pref.isAllowOverride() && getBooleanValue(prefOverrideKey(PreferencePredicate.NomenclaturalCode.getKey())))){
461
            preferredCode = getStringValue(
462
                    PreferencePredicate.NomenclaturalCode.getKey(), true);
463

  
464
        }else{
465
            preferredCode = pref.getValue();
466
        }
467
        if (StringUtils.isBlank(preferredCode)){
468
            preferredCode = getPreferenceKey((NomenclaturalCode)PreferencePredicate.NomenclaturalCode.getDefaultValue());
469
        }
470

  
471
        return getPreferredNomenclaturalCode(preferredCode);
472

  
457
        String nomString = getStringValue(PreferencePredicate.NomenclaturalCode.getKey());
458
        return getPreferredNomenclaturalCode(nomString);
473 459
    }
474 460

  
475 461
    public static NomenclaturalCode getPreferredNomenclaturalCode(String preferenceKeyNomenclaturalCode) {

Also available in: Unified diff