import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;\r
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;\r
+import eu.etaxonomy.cdm.api.service.IPreferenceService;\r
import eu.etaxonomy.cdm.api.service.IProgressMonitorService;\r
import eu.etaxonomy.cdm.api.service.IReferenceService;\r
import eu.etaxonomy.cdm.api.service.IService;\r
public IGroupService getGroupService(){\r
return (IGroupService) getService(IGroupService.class, "/remoting/group.service", new CdmServiceRequestExecutor());\r
}\r
+ \r
+ @Override\r
+ public IPreferenceService getPreferenceService(){\r
+ return (IPreferenceService) getService(IPreferenceService.class, "/remoting/preference.service", new CdmServiceRequestExecutor());\r
+ }\r
\r
\r
@Override\r
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
import eu.etaxonomy.cdm.api.service.IReferenceService;
import eu.etaxonomy.cdm.api.service.IService;
public IMetadataService getMetadataService() {
return defaultApplicationConfiguration.getMetadataService();
}
+
+ @Override
+ public IPreferenceService getPreferenceService() {
+
+ return defaultApplicationConfiguration.getPreferenceService();
+ }
}
*/
public static ICdmDataSource createDefaultH2DataSource() {
ICdmDataSource h2DataSource = CdmDataSource.NewH2EmbeddedInstance(
- DEFAULT_DATASOURCE_NAME, "sa", "", PreferencesUtil.getPreferredNomenclaturalCode());
+ DEFAULT_DATASOURCE_NAME, "sa", "", PreferencesUtil.getPreferredNomenclaturalCode(true));
save(h2DataSource.getName(), h2DataSource);
return h2DataSource;
}
public static boolean setCurrentCdmSource(ICdmSource cdmSource) {
currentCdmSource = cdmSource;
NomenclaturalCode dataSourceNomenclaturalCode = cdmSource.getNomenclaturalCode();
- NomenclaturalCode applicationNomenclaturalCode = PreferencesUtil.getPreferredNomenclaturalCode();
+ NomenclaturalCode applicationNomenclaturalCode = PreferencesUtil.getPreferredNomenclaturalCode(true);
if( dataSourceNomenclaturalCode != null && ! dataSourceNomenclaturalCode.equals(applicationNomenclaturalCode)){
PreferencesUtil.setPreferredNomenclaturalCode(dataSourceNomenclaturalCode);
nomenclaturalCodeGroup = new Group(composite , SWT.NONE);
nomenclaturalCodeGroup.setLayout(new GridLayout());
- nomenclaturalCode = dataSource != null ? dataSource.getNomenclaturalCode() : PreferencesUtil.getPreferredNomenclaturalCode();
+ nomenclaturalCode = dataSource != null ? dataSource.getNomenclaturalCode() : PreferencesUtil.getPreferredNomenclaturalCode(true);
for (final NomenclaturalCode code : NomenclaturalCodeHelper.getSupportedCodes()) {
Button button = new Button(nomenclaturalCodeGroup, SWT.RADIO);
final Group group = new Group(container, SWT.NONE);
group.setLayout(new GridLayout());
- NomenclaturalCode preferredCode = PreferencesUtil.getPreferredNomenclaturalCode();
+ NomenclaturalCode preferredCode = PreferencesUtil.getPreferredNomenclaturalCode(false);
// set preferred code as default
configurator.setNomenclaturalCode(preferredCode);
*/
package eu.etaxonomy.taxeditor.preference;
+import java.util.Iterator;
import java.util.List;
+import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.RadioGroupFieldEditor;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
/**
setPreferenceStore(TaxeditorStorePlugin.getDefault()
.getPreferenceStore());
setDescription("Choose which nomenclatural code you would like to use for scientific names unless otherwise specified.");
+ PreferencesUtil.setPreferredNomenclaturalCode(null);
}
+
+ @Override
+ public boolean performOk() {
+
+ boolean result = super.performOk();
+ if (result){
+ String value = getPreferenceStore().getString(IPreferenceKeys.PREFERRED_NOMENCLATURAL_CODE_KEY);
+ CdmPreference pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.NomenclaturalCode, value);
+ ICdmApplicationConfiguration controller = CdmStore.getCurrentApplicationConfiguration();
+ IPreferenceService service = controller.getPreferenceService();
+ service.set(pref);
+ }
+ return result;
+ }
+
+
}
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
+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;
import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.cdm.model.common.TermBase;
import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
import eu.etaxonomy.cdm.strategy.match.DefaultMatchStrategy;
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
*/
public static void setPreferredNomenclaturalCode(
NomenclaturalCode preferredCode) {
+ ICdmApplicationConfiguration controller;
+ controller = CdmStore.getCurrentApplicationConfiguration();
+ PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
+ CdmPreference preference = null;
+ if (preferredCode == null){
+ preference = controller.getPreferenceService().find(key);
+ 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));
+ getPreferenceKey(preferredCode));
}
+ public static NomenclaturalCode getPreferredNomenclaturalCode(){
+ return getPreferredNomenclaturalCode(false);
+ }
+
/**
* <p>
* getPreferredNomenclaturalCode
*
* @return a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
*/
- public static NomenclaturalCode getPreferredNomenclaturalCode() {
-
- for (NomenclaturalCode code : NomenclaturalCodeHelper.getAllCodes()) {
- String preferredCode = getPreferenceStore().getString(
+ public static NomenclaturalCode getPreferredNomenclaturalCode(boolean preConnected) {
+ ICdmApplicationConfiguration controller;
+ CdmPreference pref = null;
+ if (!preConnected){
+ try{
+ controller = CdmStore.getCurrentApplicationConfiguration();
+ PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
+ pref = controller.getPreferenceService().find(key);
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ String preferredCode;
+ if(pref == null){
+ preferredCode = getPreferenceStore().getString(
PREFERRED_NOMENCLATURAL_CODE_KEY);
+ }else{
+ preferredCode = pref.getValue();
+ }
+
+ for (NomenclaturalCode code : NomenclaturalCodeHelper.getAllCodes()) {
+// String preferredCode = getPreferenceStore().getString(
+// PREFERRED_NOMENCLATURAL_CODE_KEY);
if (getPreferenceKey(code).equals(preferredCode)) {
return code;
}
// First time Editor is opened, no nomenclatural code has been set
- if (PreferencesUtil.getPreferredNomenclaturalCode() == null) {
+ if (PreferencesUtil.getPreferredNomenclaturalCode(true) == null) {
PreferencesUtil.setPreferredNomenclaturalCode(NomenclaturalCode.ICNAFP);
/*