ref #8677: correct enabling and disabling of elements
authorKatja Luther <k.luther@bgbm.org>
Wed, 4 Dec 2019 13:51:40 +0000 (14:51 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 4 Dec 2019 13:51:40 +0000 (14:51 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/configurator/DistributionAggregationWizardPage.java

index d44c710277af304d06bb4a51da7c5d463ba15834..97bf3877326bfee721571532c752a55fe124d93b 100755 (executable)
@@ -305,6 +305,9 @@ public class DistributionAggregationWizardPage extends WizardPage implements Lis
                 buttonSuperArea.setEnabled(areachecked);
                 comboSourceModeSubAreaSuperArea.setEnabled(areachecked);
                 comboSourceModeChildParent.setEnabled(toParentChecked);
+                AggregationSourceMode areaMode = (AggregationSourceMode)comboSourceModeSubAreaSuperArea.getData(comboSourceModeSubAreaSuperArea.getText());
+                AggregationSourceMode taxonMode = (AggregationSourceMode)comboSourceModeChildParent.getData(comboSourceModeChildParent.getText());
+                sourceTypeViewer.getTable().setEnabled(((areachecked && (areaMode.equals(AggregationSourceMode.ALL) || areaMode.equals(AggregationSourceMode.ALL_SAMEVALUE) ) )|| toParentChecked && (taxonMode.equals(AggregationSourceMode.ALL) || taxonMode.equals(AggregationSourceMode.ALL_SAMEVALUE) )) );
                 getWizard().getContainer().updateButtons();
               }
         });
@@ -347,8 +350,7 @@ public class DistributionAggregationWizardPage extends WizardPage implements Lis
         sourceModeLabel.setToolTipText("Defines the source mode if aggregation from child to parent taxon is selected.");
         comboSourceModeChildParent = new Combo(control,  SWT.BORDER| SWT.READ_ONLY);
         comboSourceModeChildParent.setText(Messages.DistributionAggregationConfiguration_AggregationMode);
-        comboSourceModeChildParent.add("None");
-        comboSourceModeChildParent.setData(null);
+
         for (AggregationSourceMode mode :AggregationSourceMode.values()){
             comboSourceModeChildParent.add(mode.toString());
             comboSourceModeChildParent.setData(mode.toString(), mode);
@@ -364,8 +366,7 @@ public class DistributionAggregationWizardPage extends WizardPage implements Lis
         sourceModeLabelSuperArea.setToolTipText("Defines the source mode if aggregation from sub area to super area is selected.");
         comboSourceModeSubAreaSuperArea = new Combo(control,  SWT.BORDER| SWT.READ_ONLY);
         comboSourceModeSubAreaSuperArea.setText(Messages.DistributionAggregationConfiguration_AggregationMode);
-        comboSourceModeSubAreaSuperArea.add("None");
-        comboSourceModeSubAreaSuperArea.setData(null);
+
         for (AggregationSourceMode mode :AggregationSourceMode.values()){
             comboSourceModeSubAreaSuperArea.add(mode.toString());
             comboSourceModeSubAreaSuperArea.setData(mode.toString(), mode);
@@ -374,6 +375,7 @@ public class DistributionAggregationWizardPage extends WizardPage implements Lis
         comboSourceModeSubAreaSuperArea.addSelectionListener(this);
         comboSourceModeSubAreaSuperArea.setEnabled(false);
         comboSourceModeSubAreaSuperArea.select(0);
+
         Label sourceTypeLabel = new Label(control, SWT.NULL);
         sourceTypeLabel.setText("Source type");
         sourceTypeLabel.setToolTipText("Type of sources that should added to the aggregated distribution");
@@ -439,7 +441,7 @@ public class DistributionAggregationWizardPage extends WizardPage implements Lis
         if (e.getSource().equals(comboSourceModeChildParent) || e.getSource().equals(comboSourceModeSubAreaSuperArea)){
             AggregationSourceMode modeChild = (AggregationSourceMode)comboSourceModeChildParent.getData(comboSourceModeChildParent.getText());
             AggregationSourceMode modeArea = (AggregationSourceMode)comboSourceModeSubAreaSuperArea.getData(comboSourceModeSubAreaSuperArea.getText());
-            if ((modeChild != null && modeChild.equals(AggregationSourceMode.ALL) || modeChild.equals(AggregationSourceMode.ALL_SAMEVALUE)) ||(modeArea != null && modeArea.equals(AggregationSourceMode.ALL) || modeArea.equals(AggregationSourceMode.ALL_SAMEVALUE))){
+            if ((comboSourceModeChildParent.isEnabled() && (modeChild != null && modeChild.equals(AggregationSourceMode.ALL) || modeChild.equals(AggregationSourceMode.ALL_SAMEVALUE))) ||(comboSourceModeSubAreaSuperArea.isEnabled() && (modeArea != null && modeArea.equals(AggregationSourceMode.ALL) || modeArea.equals(AggregationSourceMode.ALL_SAMEVALUE)))){
                 sourceTypeViewer.getTable().setEnabled(true);
             }else{
                 sourceTypeViewer.getTable().setEnabled(false);