ref #9297: improve zip file name
authorKatja Luther <k.luther@bgbm.org>
Thu, 19 Nov 2020 09:26:22 +0000 (10:26 +0100)
committerKatja Luther <k.luther@bgbm.org>
Thu, 19 Nov 2020 09:26:22 +0000 (10:26 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CdmLightExportAdminPreference.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/cdmlight/CdmLightExportWizardE4.java

diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CdmLightExportAdminPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CdmLightExportAdminPreference.java
new file mode 100755 (executable)
index 0000000..4abb243
--- /dev/null
@@ -0,0 +1,72 @@
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
+
+import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
+import eu.etaxonomy.cdm.ext.geo.CondensedDistributionRecipe;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.taxeditor.preference.CdmLightExportPreference;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Nov 12, 2020
+ */
+public class CdmLightExportAdminPreference extends CdmLightExportPreference {
+
+    @Override
+    public void getValues() {
+        super.getValues();
+        isAdminPreference = true;
+        if (preferenceIsExportCondensedDistribution.getValue() != null){
+            isExportCondensedDistribution = Boolean.valueOf(preferenceIsExportCondensedDistribution.getValue());
+        }else{
+            isExportCondensedDistribution = null;
+        }
+        if (preferenceCondensedDistribtionRecipe.getValue() != null){
+            recipe = CondensedDistributionRecipe.valueOf(preferenceCondensedDistribtionRecipe.getValue().toString());
+        }else{
+            recipe = null;
+        }
+
+    }
+
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+        ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
+        if (controller == null){
+            return false;
+        }
+        IPreferenceService service = controller.getPreferenceService();
+        CdmPreference pref;
+        if (isExportCondensedDistribution == null && isAllowOverrideIsExportCondensedDistribution){
+            service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.CdmLightExportCondensedDistributionString));
+        }else{
+            pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.CdmLightExportCondensedDistributionString, isExportCondensedDistribution != null? Boolean.toString(isExportCondensedDistribution): null);
+            pref.setAllowOverride(isAllowOverrideIsExportCondensedDistribution);
+            service.set(pref);
+        }
+
+        if (recipe == null && preferenceCondensedDistribtionRecipe.isAllowOverride()){
+            service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.CdmLightExportCondensedDistributionRecipe));
+        }else{
+            pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.CdmLightExportCondensedDistributionRecipe, recipe != null? recipe.getKey(): null);
+            pref.setAllowOverride(isAllowOverrideCondensedDistributionRecipe);
+            service.set(pref);
+        }
+        return true;
+    }
+
+}
index fb4708fc064c612ca99af6dece2e78ed723dcd47..43524ee4759ab540d234c37c6fc74294f5d58877 100644 (file)
@@ -18,6 +18,7 @@ import java.util.UUID;
 import javax.inject.Inject;
 import javax.inject.Named;
 
+import org.apache.commons.lang.StringUtils;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.core.di.annotations.Optional;
 import org.eclipse.e4.ui.services.IServiceConstants;
@@ -25,8 +26,10 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.swt.widgets.Combo;
 
+import eu.etaxonomy.cdm.ext.geo.CondensedDistributionRecipe;
 import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
 import eu.etaxonomy.cdm.io.cdmLight.CdmLightExportConfigurator;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
@@ -58,6 +61,13 @@ AbstractExportWizardE4<CdmLightExportConfigurator> {
     @Override
     public void init() {
         configurator = new CdmLightExportConfigurator(null);
+        configurator.setCreateCondensedDistributionString(PreferencesUtil.getBooleanValue(PreferencePredicate.CdmLightExportCondensedDistributionString.getKey()));
+        if (configurator.isCreateCondensedDistributionString()){
+            String recipeString = PreferencesUtil.getStringValue(PreferencePredicate.CdmLightExportCondensedDistributionRecipe.getKey());
+            if (StringUtils.isNotBlank(recipeString)){
+                configurator.setCondensedDistributionRecipe(CondensedDistributionRecipe.valueOf(recipeString));
+            }
+        }
         if (selection instanceof TreeSelection && !selection.isEmpty() &&  selection.getFirstElement() instanceof TaxonNodeDto){
             selectedNode = (TaxonNodeDto)selection.getFirstElement();