Project

General

Profile

« Previous | Next » 

Revision b9801dc0

Added by Katja Luther over 6 years ago

ref #5969: get the preference NC from db when initialize preference store and save the changes in db

View differences:

eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java
59 59
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
60 60
import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
61 61
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
62
import eu.etaxonomy.cdm.api.service.IPreferenceService;
62 63
import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
63 64
import eu.etaxonomy.cdm.api.service.IReferenceService;
64 65
import eu.etaxonomy.cdm.api.service.IService;
......
413 414
    public IGroupService getGroupService(){
414 415
        return (IGroupService) getService(IGroupService.class, "/remoting/group.service", new CdmServiceRequestExecutor());
415 416
    }
417
    
418
    @Override
419
    public IPreferenceService getPreferenceService(){
420
        return (IPreferenceService) getService(IPreferenceService.class, "/remoting/preference.service", new CdmServiceRequestExecutor());
421
    }
416 422

  
417 423

  
418 424
    @Override
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCdmRepository.java
39 39
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
40 40
import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
41 41
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
42
import eu.etaxonomy.cdm.api.service.IPreferenceService;
42 43
import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
43 44
import eu.etaxonomy.cdm.api.service.IReferenceService;
44 45
import eu.etaxonomy.cdm.api.service.IService;
......
442 443
    public IMetadataService getMetadataService() {
443 444
        return defaultApplicationConfiguration.getMetadataService();
444 445
    }
446

  
447
	@Override
448
	public IPreferenceService getPreferenceService() {
449
		
450
		return defaultApplicationConfiguration.getPreferenceService();
451
	}
445 452
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/CdmDataSourceRepository.java
174 174
	 */
175 175
	public static ICdmDataSource createDefaultH2DataSource() {
176 176
	    ICdmDataSource h2DataSource = CdmDataSource.NewH2EmbeddedInstance(
177
                DEFAULT_DATASOURCE_NAME, "sa", "", PreferencesUtil.getPreferredNomenclaturalCode());
177
	    		DEFAULT_DATASOURCE_NAME, "sa", "", PreferencesUtil.getPreferredNomenclaturalCode(true));
178 178
        save(h2DataSource.getName(), h2DataSource);
179 179
        return h2DataSource;
180 180
	}
......
188 188
	public static boolean setCurrentCdmSource(ICdmSource cdmSource) {
189 189
		currentCdmSource = cdmSource;
190 190
		NomenclaturalCode dataSourceNomenclaturalCode = cdmSource.getNomenclaturalCode();
191
		NomenclaturalCode applicationNomenclaturalCode = PreferencesUtil.getPreferredNomenclaturalCode();
191
		NomenclaturalCode applicationNomenclaturalCode = PreferencesUtil.getPreferredNomenclaturalCode(true);
192 192

  
193 193
		if( dataSourceNomenclaturalCode != null && ! dataSourceNomenclaturalCode.equals(applicationNomenclaturalCode)){
194 194
			PreferencesUtil.setPreferredNomenclaturalCode(dataSourceNomenclaturalCode);
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceCredentialsWizardPage.java
258 258
		nomenclaturalCodeGroup = new Group(composite , SWT.NONE);
259 259
		nomenclaturalCodeGroup.setLayout(new GridLayout());
260 260

  
261
		nomenclaturalCode = dataSource != null ? dataSource.getNomenclaturalCode() : PreferencesUtil.getPreferredNomenclaturalCode();
261
		nomenclaturalCode = dataSource != null ? dataSource.getNomenclaturalCode() : PreferencesUtil.getPreferredNomenclaturalCode(true);
262 262

  
263 263
		for (final NomenclaturalCode code : NomenclaturalCodeHelper.getSupportedCodes()) {
264 264
			Button button = new Button(nomenclaturalCodeGroup, SWT.RADIO);
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/NomenclaturalCodeWizardPage.java
73 73
		final Group group = new Group(container, SWT.NONE);
74 74
		group.setLayout(new GridLayout());
75 75

  
76
		NomenclaturalCode preferredCode = PreferencesUtil.getPreferredNomenclaturalCode();
76
		NomenclaturalCode preferredCode = PreferencesUtil.getPreferredNomenclaturalCode(false);
77 77

  
78 78
		// set preferred code as default
79 79
		configurator.setNomenclaturalCode(preferredCode);
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java
8 8
 */
9 9
package eu.etaxonomy.taxeditor.preference;
10 10

  
11
import java.util.Iterator;
11 12
import java.util.List;
12 13

  
14
import org.eclipse.jface.preference.FieldEditor;
13 15
import org.eclipse.jface.preference.FieldEditorPreferencePage;
14 16
import org.eclipse.jface.preference.RadioGroupFieldEditor;
15 17
import org.eclipse.ui.IWorkbench;
16 18
import org.eclipse.ui.IWorkbenchPreferencePage;
17 19

  
20
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
21
import eu.etaxonomy.cdm.api.service.IClassificationService;
22
import eu.etaxonomy.cdm.api.service.IPreferenceService;
23
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
24
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
25
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
26
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
18 27
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
19 28
import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
29
import eu.etaxonomy.taxeditor.store.CdmStore;
20 30
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
21 31

  
22 32
/**
......
73 83
		setPreferenceStore(TaxeditorStorePlugin.getDefault()
74 84
				.getPreferenceStore());
75 85
		setDescription("Choose which nomenclatural code you would like to use for scientific names unless otherwise specified.");
86
		PreferencesUtil.setPreferredNomenclaturalCode(null);
76 87
	}
88
	
89
	@Override
90
	 public boolean performOk() {
91
		
92
		boolean result = super.performOk();
93
		if (result){
94
			String value = getPreferenceStore().getString(IPreferenceKeys.PREFERRED_NOMENCLATURAL_CODE_KEY);
95
			CdmPreference pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.NomenclaturalCode, value);
96
			ICdmApplicationConfiguration controller = CdmStore.getCurrentApplicationConfiguration();
97
			IPreferenceService service = controller.getPreferenceService();
98
			service.set(pref);
99
		}
100
        return result;
101
    }
102
	
103
	
77 104

  
78 105
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
34 34
import org.eclipse.swt.widgets.Shell;
35 35
import org.eclipse.ui.PlatformUI;
36 36

  
37
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
37 38
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator;
38 39
import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
40
import eu.etaxonomy.cdm.api.service.IPreferenceService;
39 41
import eu.etaxonomy.cdm.api.service.ITermService;
40 42
import eu.etaxonomy.cdm.api.service.config.FindTaxaAndNamesConfiguratorImpl;
41 43
import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
......
48 50
import eu.etaxonomy.cdm.model.common.MarkerType;
49 51
import eu.etaxonomy.cdm.model.common.TermBase;
50 52
import eu.etaxonomy.cdm.model.description.FeatureTree;
53
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
54
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
55
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
56
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
51 57
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
52 58
import eu.etaxonomy.cdm.strategy.match.DefaultMatchStrategy;
53 59
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
......
104 110
	 */
105 111
	public static void setPreferredNomenclaturalCode(
106 112
			NomenclaturalCode preferredCode) {
113
		ICdmApplicationConfiguration controller;
114
		controller = CdmStore.getCurrentApplicationConfiguration();
115
		PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
116
		CdmPreference preference = null;
117
		if (preferredCode == null){
118
			preference = controller.getPreferenceService().find(key);
119
			int index = StringUtils.lastIndexOf(preference.getValue(), ".");
120
			UUID uuid = UUID.fromString(preference.getValue().substring(index +1, preference.getValue().length()));
121
			preferredCode = NomenclaturalCode.getByUuid(uuid);
122
		} else{
123
			preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode, preferredCode.getKey());
124
			controller.getPreferenceService().set(preference);
125
		}
126
		 
127
	    
107 128
		getPreferenceStore().setValue(PREFERRED_NOMENCLATURAL_CODE_KEY,
108
				getPreferenceKey(preferredCode));
129
	    			getPreferenceKey(preferredCode));
109 130
	}
110 131

  
132
	public static NomenclaturalCode getPreferredNomenclaturalCode(){
133
		return getPreferredNomenclaturalCode(false);
134
	}
135
	
111 136
	/**
112 137
	 * <p>
113 138
	 * getPreferredNomenclaturalCode
......
115 140
	 *
116 141
	 * @return a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
117 142
	 */
118
	public static NomenclaturalCode getPreferredNomenclaturalCode() {
119

  
120
		for (NomenclaturalCode code : NomenclaturalCodeHelper.getAllCodes()) {
121
			String preferredCode = getPreferenceStore().getString(
143
	public static NomenclaturalCode getPreferredNomenclaturalCode(boolean preConnected) {
144
		ICdmApplicationConfiguration controller;
145
		CdmPreference pref = null;
146
		if (!preConnected){
147
			try{
148
				controller = CdmStore.getCurrentApplicationConfiguration();
149
				PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
150
			    pref = controller.getPreferenceService().find(key);
151
			}catch(Exception e){
152
				e.printStackTrace();
153
			}
154
		}
155
		
156
	    String preferredCode;
157
	    if(pref == null){
158
	    	preferredCode = getPreferenceStore().getString(
122 159
					PREFERRED_NOMENCLATURAL_CODE_KEY);
160
	    }else{
161
	    	preferredCode = pref.getValue();
162
	    }
163
	    
164
		for (NomenclaturalCode code : NomenclaturalCodeHelper.getAllCodes()) {
165
//			String preferredCode = getPreferenceStore().getString(
166
//					PREFERRED_NOMENCLATURAL_CODE_KEY);
123 167
			if (getPreferenceKey(code).equals(preferredCode)) {
124 168
				return code;
125 169
			}
......
411 455
		// First time Editor is opened, no nomenclatural code has been set
412 456

  
413 457

  
414
		if (PreferencesUtil.getPreferredNomenclaturalCode() == null) {
458
		if (PreferencesUtil.getPreferredNomenclaturalCode(true) == null) {
415 459
			PreferencesUtil.setPreferredNomenclaturalCode(NomenclaturalCode.ICNAFP);
416 460
			/*
417 461

  

Also available in: Unified diff