Project

General

Profile

Download (4.05 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.BooleanFieldEditor;
14
import org.eclipse.jface.preference.ComboFieldEditor;
15

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

    
29
/**
30
 * <p>
31
 * NomenclaturalCodePreferences class.
32
 * </p>
33
 *
34
 * @author p.ciardelli
35
 * @created 16.09.2008
36
 */
37
public class NomenclaturalCodePreferences extends FieldEditorPreferencePageE4 {
38
    CdmPreference pref;
39
	@Override
40
	protected void createFieldEditors() {
41
	    PreferencesUtil.setPreferredNomenclaturalCode(null, false);
42
	    if (pref.isAllowOverride()) {
43
	        addField(new ComboFieldEditor(
44
	                PreferencesUtil.createPreferenceString(IPreferenceKeys.PREFERRED_NOMENCLATURAL_CODE_KEY),
45
				Messages.NomenclaturalCodePreferences_available_codes, getLabelAndValues(),
46
				getFieldEditorParent()));
47

    
48
            addField(new BooleanFieldEditor(
49
                    PreferencesUtil.createOverridePreferenceString(PreferencePredicate.NomenclaturalCode.getKey()),
50
                    Messages.NomenclaturalCodePreferences_useLocalCode,
51
                    getFieldEditorParent()));
52
        } else {
53
            setDescription(Messages.NomenclaturalCodePreferences_localChangesNotAllowed);
54
        }
55

    
56
	}
57

    
58
	/**
59
	 * @return
60
	 */
61
	private String[][] getLabelAndValues() {
62
		List<NomenclaturalCode> supportedCodes = NomenclaturalCodeHelper
63
				.getSupportedCodes();
64
		String[][] labelAndValues = new String[supportedCodes.size()][2];
65
		for (int i = 0; i < supportedCodes.size(); i++) {
66
			labelAndValues[i][0] = NomenclaturalCodeHelper
67
					.getDescription(supportedCodes.get(i));
68
			labelAndValues[i][1] = PreferencesUtil
69
					.getPreferenceKey(supportedCodes.get(i));
70
		}
71
		return labelAndValues;
72
	}
73

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

    
93
	    if (pref.isAllowOverride()) {
94
	        setDescription(Messages.NomenclaturalCodePreferences_choose);
95
	    }else{
96
	        setDescription(Messages.NomenclaturalCodePreferences_localChangesNotAllowed);
97

    
98
	    }
99
	}
100

    
101
	@Override
102
	 public boolean performOk() {
103

    
104
		boolean result = super.performOk();
105
//		if (result){
106
//			String value = getPreferenceStore().getString(IPreferenceKeys.PREFERRED_NOMENCLATURAL_CODE_KEY);
107
//			CdmPreference pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.NomenclaturalCode, value);
108
//			ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
109
//			if (controller == null){
110
//				return false;
111
//			}
112
//			IPreferenceService service = controller.getPreferenceService();
113
//			service.set(pref);
114
//		}
115
        return result;
116
    }
117

    
118
}
(14-14/21)