import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator;
import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
-import eu.etaxonomy.cdm.api.service.IPreferenceService;
import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.api.service.config.FindTaxaAndNamesConfiguratorImpl;
import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
* a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode}
* object.
*/
- public static void setPreferredNomenclaturalCode(
- NomenclaturalCode preferredCode) {
- ICdmApplicationConfiguration controller;
- controller = CdmStore.getCurrentApplicationConfiguration();
- PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
- CdmPreference preference = null;
- if (controller == null){
- return;
- }
- if (preferredCode == null){
- preference = controller.getPreferenceService().find(key);
- if (preference == null){
- return;
- } else{
- int index = StringUtils.lastIndexOf(preference.getValue(), ".");
- UUID uuid = UUID.fromString(preference.getValue().substring(index +1, preference.getValue().length()));
- preferredCode = NomenclaturalCode.getByUuid(uuid);
- }
- } else{
- preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode, preferredCode.getKey());
- controller.getPreferenceService().set(preference);
- }
-
-
- getPreferenceStore().setValue(PREFERRED_NOMENCLATURAL_CODE_KEY,
- getPreferenceKey(preferredCode));
+ public static NomenclaturalCode setPreferredNomenclaturalCode(
+ NomenclaturalCode preferredCode, boolean local) {
+ if (local){
+ getPreferenceStore().setValue(PREFERRED_NOMENCLATURAL_CODE_KEY,
+ getPreferenceKey(preferredCode));
+ }
+ else{
+ ICdmApplicationConfiguration controller;
+ controller = CdmStore.getCurrentApplicationConfiguration();
+ PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
+ CdmPreference preference = null;
+ if (controller == null){
+ return null;
+ }
+ if (preferredCode == null){
+ preference = controller.getPreferenceService().find(key);
+ if (preference == null){
+ return null;
+ } else{
+ int index = StringUtils.lastIndexOf(preference.getValue(), ".");
+ UUID uuid = UUID.fromString(preference.getValue().substring(index +1, preference.getValue().length()));
+ preferredCode = NomenclaturalCode.getByUuid(uuid);
+ return preferredCode;
+ }
+ } else{
+ preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode, preferredCode.getKey());
+ controller.getPreferenceService().set(preference);
+
+ }
+ }
+ return preferredCode;
+
+
+
}
public static NomenclaturalCode getPreferredNomenclaturalCode(){
- return getPreferredNomenclaturalCode(false);
+ if (getPreferenceStore().getBoolean(OVERRIDE_NOMENCLATURAL_CODE_KEY)) {
+ return getPreferredNomenclaturalCode(true);
+ } else{
+ return getPreferredNomenclaturalCode(false);
+ }
}
-
+
/**
* <p>
* getPreferredNomenclaturalCode
*
* @return a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
*/
- public static NomenclaturalCode getPreferredNomenclaturalCode(boolean preConnected) {
+ public static NomenclaturalCode getPreferredNomenclaturalCode(boolean useLocal) {
ICdmApplicationConfiguration controller;
CdmPreference pref = null;
- if (!preConnected){
+ if (!useLocal){
try{
controller = CdmStore.getCurrentApplicationConfiguration();
PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
e.printStackTrace();
}
}
-
+
String preferredCode;
if(pref == null){
preferredCode = getPreferenceStore().getString(
}else{
preferredCode = pref.getValue();
}
-
+
for (NomenclaturalCode code : NomenclaturalCodeHelper.getAllCodes()) {
-// String preferredCode = getPreferenceStore().getString(
-// PREFERRED_NOMENCLATURAL_CODE_KEY);
if (getPreferenceKey(code).equals(preferredCode)) {
return code;
}
if (PreferencesUtil.getPreferredNomenclaturalCode(true) == null) {
- PreferencesUtil.setPreferredNomenclaturalCode(NomenclaturalCode.ICNAFP);
+ PreferencesUtil.setPreferredNomenclaturalCode(NomenclaturalCode.ICNAFP, true);
/*
StoreUtil.info("No nomencatural code set.");