Revision b9801dc0
Added by Katja Luther over 6 years ago
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
ref #5969: get the preference NC from db when initialize preference store and save the changes in db