move condensedDistribution preference to distribution preferences
authorKatja Luther <k.luther@bgbm.org>
Fri, 20 Nov 2020 09:54:02 +0000 (10:54 +0100)
committerKatja Luther <k.luther@bgbm.org>
Fri, 20 Nov 2020 09:54:02 +0000 (10:54 +0100)
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CdmLightExportAdminPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/DistributionAdminPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/cdmlight/CdmLightExportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmLightExportPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionGeneralPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CdmPreferencePage.java

index 034fc391196ce0b80c3006bb431cf74d47383163..6deed3f8ebe56488f0cf3fc88d77ccfee1bfe95c 100755 (executable)
          id="eu.etaxonomy.taxeditor.store.abcdImportPreference"
          name="%page.name.40">
     </page>
-     <page
+  <!--   <page
          category="eu.etaxonomy.taxeditor.store.IOPreferencesGeneral"
          class="eu.etaxonomy.taxeditor.preference.CdmLightExportPreference"
          id="eu.etaxonomy.taxeditor.store.cdmLightExportPreference"
          name="%page.name.142">
-    </page>
+    </page>-->
     <page
          category="eu.etaxonomy.taxeditor.store.abcdImportPreference"
          class="eu.etaxonomy.taxeditor.preference.AbcdImportProvider"
       </page>
       <page 
             category="eu.etaxonomy.taxeditor.preferences.description"
-            class="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
+            class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.DistributionAdminPreferences"
             id="eu.etaxonomy.taxeditor.store.Distribution"
             name="%page.name.104">
       </page>
             id="eu.etaxonomy.taxeditor.store.abcdImportPreference"
             name="%page.name.40">
       </page>
-      <page
+     <!-- <page
             category="eu.etaxonomy.taxeditor.store.IOPreference"
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.CdmLightExportAdminPreference"
             id="eu.etaxonomy.taxeditor.store.cdmLightExportPreference"
             name="%page.name.142">
-      </page>
+      </page>-->
       <page
             category="eu.etaxonomy.taxeditor.preferences.namePreferences"
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.NameDetailsViewAdminConfiguration"
index 5a7d90a886dbc801e4b1253b89ee253a713362f4..e05565e1653b5e1dd7258623cadd056f5e54378f 100755 (executable)
@@ -60,9 +60,9 @@ public class CdmLightExportAdminPreference extends CdmLightExportPreference {
         }
 
         if (recipe == null && preferenceCondensedDistribtionRecipe.isAllowOverride()){
-            service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.CondensedDistributionRecipe));
+            service.remove(CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.CondensedDistributionRecipe));
         }else{
-            pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.CondensedDistributionRecipe, recipe != null? recipe.getKey(): null);
+            pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.CondensedDistributionRecipe, recipe != null? recipe.getKey(): null);
             pref.setAllowOverride(isAllowOverrideCondensedDistributionRecipe);
             service.set(pref);
         }
index d1d7d1f3fe59716b01a625ef3676397536654b56..ab9a0cf53b8d9e6e06d7a7e05c85c9c01095647c 100755 (executable)
@@ -8,93 +8,55 @@
 */
 package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
+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.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
-import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author k.luther
  * @since 08.10.2018
  *
  */
-public class DistributionAdminPreferences extends CdmPreferencePage implements IE4AdminPreferencePage {
+public class DistributionAdminPreferences extends DistributionGeneralPreference {
 
-    private boolean allowOverrideAreas;
-    private boolean allowOverrideStatus;
-    private CdmPreference prefAreas = null;
-    private CdmPreference prefStatus = 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 (recipe == null && preferenceCondensedDistribtionRecipe.isAllowOverride()){
+            service.remove(CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.CondensedDistributionRecipe));
+        }else{
+            pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.CondensedDistributionRecipe, recipe != null? recipe.getKey(): null);
+            pref.setAllowOverride(isAllowOverrideCondensedDistributionRecipe);
+            service.set(pref);
+        }
+        return true;
+    }
 
     @Override
-    protected Control createContents(Composite parent) {
+    public void getValues(){
+        super.getValues();
         isAdminPreference = true;
-        Composite composite = createComposite(parent);
-        GridData labelGridData = new GridData();
-        labelGridData.horizontalSpan = 2;
-        labelGridData.verticalSpan = 4;
-
-        prefAreas = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
-        allowOverrideAreas = prefAreas != null?prefAreas.isAllowOverride():true;
-
-        final CLabel label = new CLabel(composite, SWT.NULL);
-        label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard);
-        label.setLayoutData(labelGridData);
-        final CommandHandlerButton button_openWizard = new CommandHandlerButton(composite, SWT.PUSH,
-                "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler"); //$NON-NLS-1$
-
-        button_openWizard.setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
-        final Button allowOverrideAreasCheckButton = new Button(composite, SWT.CHECK);
-        allowOverrideAreasCheckButton.setText(Messages.GeneralPreference_allowOverride);
-        allowOverrideAreasCheckButton.setSelection(allowOverrideAreas);
-        allowOverrideAreasCheckButton.addSelectionListener(new SelectionAdapter(){
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                setApply(true);
-                allowOverrideAreas = allowOverrideAreasCheckButton.getSelection();
-
-            }
-        });
 
-
-        prefStatus = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);
-
-        allowOverrideStatus = prefStatus != null?prefStatus.isAllowOverride():true;
-
-        final CLabel labelStatus = new CLabel(composite, SWT.NULL);
-        labelStatus.setText(Messages.DistributionAdminPreferences_SELECT_STATUS);
-        GridData labelStatusGridData = new GridData();
-        labelStatusGridData.horizontalSpan = 2;
-        labelStatusGridData.verticalSpan = 2;
-        labelStatus.setLayoutData(labelStatusGridData);
-        final CommandHandlerButton button_openStatusWizard = new CommandHandlerButton(composite, SWT.PUSH,
-                "eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardAdminHandler"); //$NON-NLS-1$
-
-        button_openStatusWizard.setText(Messages.Distribution_status_selection);
-        final Button allowOverrideStatusCheckButton = new Button(composite, SWT.CHECK);
-        allowOverrideStatusCheckButton.setText(Messages.GeneralPreference_allowOverride);
-        allowOverrideStatusCheckButton.setSelection(allowOverrideStatus);
-        allowOverrideStatusCheckButton.addSelectionListener(new SelectionAdapter(){
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                setApply(true);
-                allowOverrideStatus = allowOverrideStatusCheckButton.getSelection();
-
-            }
-        });
-
-        return composite;
+        if (preferenceCondensedDistribtionRecipe.getValue() != null){
+            recipe = CondensedDistributionRecipe.valueOf(preferenceCondensedDistribtionRecipe.getValue().toString());
+        }else{
+            recipe = null;
+        }
     }
 
 
+
 }
index 6293791d8c65720e2079c4c05883b3535b43aca2..e52853716b71c2f0ea92802d93f92fd8792c81a7 100644 (file)
@@ -61,13 +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.CondensedDistributionRecipe.getKey());
-            if (StringUtils.isNotBlank(recipeString)){
-                configurator.setCondensedDistributionRecipe(CondensedDistributionRecipe.valueOf(recipeString));
-            }
+//        configurator.setCreateCondensedDistributionString(PreferencesUtil.getBooleanValue(PreferencePredicate.CdmLightExportCondensedDistributionString.getKey()));
+//        if (configurator.isCreateCondensedDistributionString()){
+        String recipeString = PreferencesUtil.getStringValue(PreferencePredicate.CondensedDistributionRecipe.getKey());
+        if (StringUtils.isNotBlank(recipeString)){
+            configurator.setCondensedDistributionRecipe(CondensedDistributionRecipe.valueOf(recipeString));
         }
+//        }
         if (selection instanceof TreeSelection && !selection.isEmpty() &&  selection.getFirstElement() instanceof TaxonNodeDto){
             selectedNode = (TaxonNodeDto)selection.getFirstElement();
 
index 1d01730f1d70889412eeaa2122be4068057b552a..35befa0fbd40d2a48e0aab48346943e55a8ba8cd 100755 (executable)
@@ -164,8 +164,6 @@ public class CdmLightExportPreference extends CdmPreferencePage implements Selec
             if(text.startsWith(Messages.Preference_Use_Default)){
                 isExportCondensedDistribution = null;
                 overrideExportCondensedDistribution = false;
-                isAllowOverrideIsExportCondensedDistribution = true;
-
             }
 
             if (text.equals(Messages.GeneralPreference_yes)){
@@ -259,13 +257,13 @@ public class CdmLightExportPreference extends CdmPreferencePage implements Selec
         }
         // recipe for creation of condensed string
 
-        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.CondensedDistributionRecipe);
+        key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.CondensedDistributionRecipe);
         preferenceCondensedDistribtionRecipe = controller.getPreferenceService().find(key);
 
         if (preferenceCondensedDistribtionRecipe != null ){
             isAllowOverrideCondensedDistributionRecipe = preferenceCondensedDistribtionRecipe.isAllowOverride();
         }else{
-            preferenceCondensedDistribtionRecipe = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CondensedDistributionRecipe,
+            preferenceCondensedDistribtionRecipe = CdmPreference.NewDatabaseInstance(PreferencePredicate.CondensedDistributionRecipe,
                     PreferencePredicate.CondensedDistributionRecipe.getDefaultValue() != null? PreferencePredicate.CondensedDistributionRecipe.getDefaultValue().toString(): null);
             isAllowOverrideCondensedDistributionRecipe = true;
         }
index 3814b23071d7ee257f07cf12535b3df462e044d9..69e6cddc09807c24712b64a9d9c8d80c19503207 100755 (executable)
 */
 package eu.etaxonomy.taxeditor.preference;
 
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
+import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.ext.geo.CondensedDistributionRecipe;
+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.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author k.luther
  * @since 02.07.2019
  *
  */
-public class DistributionGeneralPreference extends CdmPreferencePage {
+public class DistributionGeneralPreference extends CdmPreferencePage implements SelectionListener {
+    protected CdmPreference preferenceCondensedDistribtionRecipe;
+    protected boolean isAllowOverrideCondensedDistributionRecipe;
+    protected boolean isOverrideCondensedDistributionRecipe;
+    Combo comboDistributionStringRecipe;
+    Button allowOverrideDistributionStringRecipe;
+    protected CondensedDistributionRecipe recipe;
+
 
     @Override
     protected Control createContents(Composite parent) {
-        noDefaultAndApplyButton();
-        return null;
+        getValues();
+        Composite composite = createComposite(parent);
+        comboDistributionStringRecipe = createCombo(composite, CondensedDistributionRecipe.values(), PreferencePredicate.CondensedDistributionRecipe, "Condensed Distribution String recipe", isAdminPreference);
+
+//      GridData gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
+//      gridData.horizontalIndent = 9;
+//      comboDistributionStringRecipe.setLayoutData(gridData);
+      GridLayoutFactory.fillDefaults();
+
+      comboDistributionStringRecipe.addSelectionListener(this);
+//      comboDistributionStringRecipe.setEnabled((isExportCondensedDistribution != null && isExportCondensedDistribution )|| (isExportCondensedDistribution == null) && Boolean.valueOf(preferenceIsExportCondensedDistribution.getValue()));
+      int index = 0;
+
+      for (String itemLabel : comboDistributionStringRecipe.getItems()) {
+          if (itemLabel.startsWith(Messages.Preference_Use_Default) && recipe == null){
+              comboDistributionStringRecipe.select(index);
+              break;
+          }
+          if (itemLabel.equals(recipe.getLabel())) {
+              comboDistributionStringRecipe.select(index);
+              break;
+          }
+
+          index++;
+      }
+      if (isAdminPreference){
+          allowOverrideDistributionStringRecipe = createAllowOverrideButton(composite);
+          allowOverrideDistributionStringRecipe.setSelection(this.preferenceCondensedDistribtionRecipe != null? this.preferenceCondensedDistribtionRecipe.isAllowOverride(): true);
+          allowOverrideDistributionStringRecipe.addSelectionListener(new SelectionAdapter() {
+              @Override
+              public void widgetSelected(SelectionEvent e) {
+                  setApply(true);
+                  isAllowOverrideCondensedDistributionRecipe = !isAllowOverrideCondensedDistributionRecipe;
+              }
+          });
+       }else{
+          comboDistributionStringRecipe.setEnabled(isAllowOverrideCondensedDistributionRecipe);
+
+       }
+
+      return composite;
+    }
+
+    @Override
+    protected void getValues(){
+        isAdminPreference = false;
+        ICdmRepository controller;
+        controller = CdmStore.getCurrentApplicationConfiguration();
+        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.CondensedDistributionRecipe);
+        preferenceCondensedDistribtionRecipe = controller.getPreferenceService().find(key);
+
+        if (preferenceCondensedDistribtionRecipe != null ){
+            isAllowOverrideCondensedDistributionRecipe = preferenceCondensedDistribtionRecipe.isAllowOverride();
+        }else{
+            preferenceCondensedDistribtionRecipe = CdmPreference.NewDatabaseInstance(PreferencePredicate.CondensedDistributionRecipe,
+                    PreferencePredicate.CondensedDistributionRecipe.getDefaultValue() != null? PreferencePredicate.CondensedDistributionRecipe.getDefaultValue().toString(): null);
+            isAllowOverrideCondensedDistributionRecipe = true;
+        }
+
+        isOverrideCondensedDistributionRecipe = PreferencesUtil.getBooleanValue(
+                PreferencesUtil.prefOverrideKey(PreferencePredicate.CondensedDistributionRecipe.getKey()), true) != null? PreferencesUtil.getBooleanValue(
+                        PreferencesUtil.prefOverrideKey(PreferencePredicate.CondensedDistributionRecipe.getKey()), true):false;
+
+        if (isAllowOverrideCondensedDistributionRecipe && isOverrideCondensedDistributionRecipe){
+           String configString = PreferencesUtil.getStringValue(PreferencePredicate.CondensedDistributionRecipe.getKey(), true);
+           if (StringUtils.isNotBlank(configString)){
+               recipe = CondensedDistributionRecipe.valueOf(configString);
+           }
+        }else{
+            if (preferenceCondensedDistribtionRecipe.getValue() != null){
+                recipe = CondensedDistributionRecipe.valueOf(preferenceCondensedDistribtionRecipe.getValue());
+            }
+        }
+    }
+
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+        setApply(true);
+        if (e.getSource().equals(this.comboDistributionStringRecipe)){
+            int selIndex = comboDistributionStringRecipe.getSelectionIndex();
+            if (selIndex == 0){
+                isOverrideCondensedDistributionRecipe = false;
+            }else{
+                isOverrideCondensedDistributionRecipe = true;
+            }
+            recipe = (CondensedDistributionRecipe) comboDistributionStringRecipe.getData(comboDistributionStringRecipe.getText());
+
+        }
+
     }
 
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
+        // TODO Auto-generated method stub
+
+    }
 
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+
+        if(isOverrideCondensedDistributionRecipe){
+            PreferencesUtil.setStringValue(PreferencePredicate.CondensedDistributionRecipe.getKey(), recipe.getKey());
+            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.CondensedDistributionRecipe.getKey()), isOverrideCondensedDistributionRecipe);
+        }else{
+           PreferencesUtil.setBooleanValue( PreferencesUtil.prefOverrideKey(PreferencePredicate.CondensedDistributionRecipe.getKey()), isOverrideCondensedDistributionRecipe);
+        }
+        return true;
+    }
 
 }
index f4de3c3ec145c4c8d5725dd7ad5a3cded7e873d6..6524fcc11aac92a95995f2f25461d80635518c9f 100644 (file)
@@ -176,7 +176,7 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
         booleanCombo.add(Messages.Preference_Use_Default + defaultString);
         booleanCombo.add(textTrue);
         booleanCombo.add(textFalse);
-        if (!isAdminPage){
+        if (!isAdminPage && dbPref != null){
             booleanCombo.setEnabled(dbPref.isAllowOverride());
         }
         return booleanCombo;
@@ -192,7 +192,7 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
         Combo booleanCombo = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
 
         CdmPreference dbPref = PreferencesUtil.getPreferenceFromDB(predicate);
-        String defaultValue = "";
+        String defaultValue = " - ";
         if (dbPref != null && !isAdminPage && dbPref.getValue() != null){
             defaultValue = dbPref.getValue();
             if (enumValues != null){