Project

General

Profile

Download (4.32 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 * Copyright (C) 2007 EDIT
3
 * European Distributed Institute of Taxonomy
4
 * http://www.e-taxonomy.eu
5
 *
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.
8
 */
9
package eu.etaxonomy.taxeditor.preference.menu;
10

    
11
import java.util.List;
12

    
13
import org.eclipse.jface.preference.ComboFieldEditor;
14

    
15
import eu.etaxonomy.cdm.api.application.ICdmRepository;
16
import eu.etaxonomy.cdm.api.service.IPreferenceService;
17
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
18
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
19
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
20
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
21
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
22
import eu.etaxonomy.taxeditor.l10n.Messages;
23
import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
24
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
25
import eu.etaxonomy.taxeditor.store.CdmStore;
26

    
27
/**
28
 * <p>
29
 * NomenclaturalCodePreferences class.
30
 * </p>
31
 *
32
 * @author p.ciardelli
33
 * @created 16.09.2008
34
 */
35
public class NomenclaturalCodePreferences extends FieldEditorPreferencePageE4 {
36
    CdmPreference pref;
37

    
38
	@Override
39
	protected void createFieldEditors() {
40
	    PreferencesUtil.setPreferredNomenclaturalCode(null, false);
41
	    isApply = true;
42
	    if (pref.isAllowOverride()) {
43
	        addField(new ComboFieldEditor(
44
	                PreferencesUtil.createPreferenceString(PreferencePredicate.NomenclaturalCode.getKey()),
45
				Messages.NomenclaturalCodePreferences_available_codes, getLabelAndValues(),
46
				getFieldEditorParent()));
47

    
48

    
49
        } else {
50
            setDescription(Messages.NomenclaturalCodePreferences_localChangesNotAllowed);
51
        }
52

    
53
	}
54

    
55
	/**
56
	 * @return
57
	 */
58
	private String[][] getLabelAndValues() {
59
		List<NomenclaturalCode> supportedCodes = NomenclaturalCodeHelper
60
				.getSupportedCodes();
61
		String[][] labelAndValues = new String[supportedCodes.size()][2];
62
		String label;
63
		for (int i = 0; i < supportedCodes.size(); i++) {
64
		    label = NomenclaturalCodeHelper
65
                    .getDescription(supportedCodes.get(i));
66
		    String value = supportedCodes.get(i).toString();
67
		    String prefValue = pref.getValue();
68
		    if (pref.getValue().equals(supportedCodes.get(i).toString())) {
69
		         label +=Messages.Preference_Use_Default;
70
            }
71
		    labelAndValues[i][0] = label;
72
			labelAndValues[i][1] = PreferencesUtil
73
					.getPreferenceKey(supportedCodes.get(i));
74
		}
75
		return labelAndValues;
76
	}
77

    
78
	/**
79
	 * {@inheritDoc}
80
	 *
81
	 * Initialize the preference page
82
	 */
83
    @Override
84
    public void init() {
85
        super.init();
86
        if(!CdmStore.isActive()){
87
            return;
88
        }
89
	      ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
90
          if (controller != null){
91
              IPreferenceService service = controller.getPreferenceService();
92
              PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
93
              pref = service.find(key);
94
              //getPreferenceStore().setValue(IPreferenceKeys.ALLOW_OVERRIDE_NOMENCLATURAL_CODE_KEY, pref == null? true : pref.isAllowOverride());
95
          }
96
          if (pref == null){
97
              pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.NomenclaturalCode, PreferencePredicate.NomenclaturalCode.getDefaultValue().toString());
98
          }
99

    
100
	    if (pref.isAllowOverride()) {
101
	        setDescription(Messages.NomenclaturalCodePreferences_choose);
102
	    }else{
103
	        setDescription(Messages.NomenclaturalCodePreferences_localChangesNotAllowed);
104

    
105
	    }
106
	}
107

    
108
	@Override
109
	 public boolean performOk() {
110
	    if (!isApply()){
111
	        return true;
112
	    }
113
		boolean result = super.performOk();
114
		String value = pref.getValue();
115
		String test = PreferencesUtil.getStringValue(PreferencePredicate.NomenclaturalCode.getKey(), true);
116
		if (!pref.getValue().equals(PreferencesUtil.getStringValue(PreferencePredicate.NomenclaturalCode.getKey(), true))) {
117
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.NomenclaturalCode.getKey()), true);
118
        }else{
119
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.NomenclaturalCode.getKey()), false);
120
        }
121
		return result;
122
	}
123

    
124

    
125
}
(16-16/23)