ref #9393: disable sec selection if reused taxon is used
authorKatja Luther <k.luther@bgbm.org>
Thu, 21 Jan 2021 10:56:33 +0000 (11:56 +0100)
committerKatja Luther <k.luther@bgbm.org>
Thu, 21 Jan 2021 10:56:33 +0000 (11:56 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java

index 1a375339ac64e99ab951d8512d556c13294ef9d5..19459c140750a4f0126687b9ab9c7d4637160a51 100644 (file)
@@ -91,6 +91,7 @@ public class TaxonNodeDetailElement extends AbstractSingleSourceElement<TaxonNod
        private EnumComboElement<TaxonNodeStatus> combo_status;
        private CheckboxElement checkbox_publish;
     private MultilanguageTextElement multiLanguageTextStatusNotes;
+    String defaultPublish;
 
        public TaxonNodeDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement, boolean isCreateNew) {
@@ -173,6 +174,7 @@ public class TaxonNodeDetailElement extends AbstractSingleSourceElement<TaxonNod
                     .createTaxonNodeSelectionElement(getConversationHolder(), formElement, Messages.TaxonNodeWizardPage_PARENT, parentNode,
                             EntitySelectionElement.SELECTABLE, style, 100);
             selection_parentTaxonNode.setIndent(10);
+            selection_parentTaxonNode.setEnabled(false);
 
 
 
@@ -229,18 +231,8 @@ public class TaxonNodeDetailElement extends AbstractSingleSourceElement<TaxonNod
         combo_status.setIndent(10);
         if(isCreateNew()){
 
-                  String defaultPublish = PreferencesUtil.getStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey());
-               if (defaultPublish != null && defaultPublish.equals(PublishEnum.Publish.getKey())){
-                   checkbox_publish.setSelection(true);
-               } else if (defaultPublish != null && defaultPublish.equals(PublishEnum.NotPublish.getKey())){
-                   checkbox_publish.setSelection(false);
-               }else{
-                   if(this.getParentTreeNode() != null &&  this.getParentTreeNode().isInstanceOf(TaxonNode.class) && this.getParentTreeNode().getTaxon() != null){
-                       checkbox_publish.setSelection(this.getParentTreeNode().getTaxon().isPublish());
-                   }else{
-                       checkbox_publish.setSelection(true);
-                   }
-               }
+            defaultPublish = PreferencesUtil.getStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey());
+               setDefaultPublish();
            } else{
             setTreeNode(entity);
             complete = true;
@@ -282,6 +274,20 @@ public class TaxonNodeDetailElement extends AbstractSingleSourceElement<TaxonNod
 
        }
 
+    private void setDefaultPublish() {
+        if (defaultPublish != null && defaultPublish.equals(PublishEnum.Publish.getKey())){
+            checkbox_publish.setSelection(true);
+        } else if (defaultPublish != null && defaultPublish.equals(PublishEnum.NotPublish.getKey())){
+            checkbox_publish.setSelection(false);
+        }else{
+            if(this.getParentTreeNode() != null &&  this.getParentTreeNode().isInstanceOf(TaxonNode.class) && this.getParentTreeNode().getTaxon() != null){
+                checkbox_publish.setSelection(this.getParentTreeNode().getTaxon().isPublish());
+            }else{
+                checkbox_publish.setSelection(true);
+            }
+        }
+    }
+
        private void preFillTaxonName() {
         TaxonNode node = parentNode;
         if(node != null && node.getTaxon()!=null){
@@ -321,6 +327,7 @@ public class TaxonNodeDetailElement extends AbstractSingleSourceElement<TaxonNod
                            microReference.setText(getTaxon().getSecMicroReference());
                            if (isCreateNew()){
                               selection_SecRef.setEntity(getTaxon().getSec());
+
                            }else{
                               textTaxonSec.setText((getTaxon().getSec().getTitleCache()));
                            }
@@ -328,15 +335,22 @@ public class TaxonNodeDetailElement extends AbstractSingleSourceElement<TaxonNod
                            microReference.setText("");
                            if (isCreateNew()){
                                    selection_SecRef.setEntity(null);
+
                            }else{
                               textTaxonSec.setText("");
                            }
                        }
                        checkbox_publish.setSelected(getTaxon().isPublish());
+            }else{
+                selection_SecRef.setEntity(null);
+                setDefaultPublish();
             }
                    boolean enabled = selection_reuseExistingTaxon.getEntity() == null;
                    if (selection_reuseExistingName != null){
                        selection_reuseExistingName.setEnabled(enabled);
+            }
+                   if (selection_SecRef != null){
+                       selection_SecRef.setEnabled(enabled);
             }
                    if (textNewTaxonName != null){
                        textNewTaxonName.setEnabled(enabled);