ref #9340: correct handling of sec for moving one more taxa to synonymy of other...
authorKatja Luther <k.luther@bgbm.org>
Thu, 4 Mar 2021 20:25:10 +0000 (21:25 +0100)
committerKatja Luther <k.luther@bgbm.org>
Thu, 4 Mar 2021 20:25:10 +0000 (21:25 +0100)
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingChangeAcceptedTaxonToSynonymHandlerE4.java

index cd472080835c140e58bf43b7424c977d088170e6..b5e0aef2350d41acdbffaba98e591b9ef5b08ecf 100644 (file)
@@ -153,7 +153,7 @@ public class RemotingChangeAcceptedTaxonToSynonymHandlerE4 extends RemotingCdmHa
             }else if (result == 1){
                 newSecUuid = newTaxonUuid;
             }else if (result == 0){
-                secHandling = SecReferenceHandlingEnum.UseNewParentSec;
+                secHandling = SecReferenceHandlingEnum.KeepAlways;
             }else{
                 return null;
             }
@@ -162,7 +162,11 @@ public class RemotingChangeAcceptedTaxonToSynonymHandlerE4 extends RemotingCdmHa
 
 
             UUID oldSecUuid = secUuids.iterator().next();
-            if ((secUuids.size() > 0 && newTaxonUuid != oldSecUuid && secHandling.equals(SecReferenceHandlingEnum.KeepWhenSame) )|| secHandling.equals(SecReferenceHandlingEnum.WarningSelect)){
+            boolean equalSec = newTaxonUuid.equals(oldSecUuid);
+            if ((secUuids.size() > 0 &&
+                    ((newTaxonUuid != null && oldSecUuid != null && !newTaxonUuid.equals(oldSecUuid))
+                            || (newTaxonUuid != null && oldSecUuid == null) ||(newTaxonUuid == null && oldSecUuid != null))
+                    && secHandling.equals(SecReferenceHandlingEnum.KeepWhenSame) )|| secHandling.equals(SecReferenceHandlingEnum.WarningSelect)){
                 int result = MessagingUtils.confirmDialog(Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message,
                         new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Parent, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select});
                 if (result == 2){
@@ -171,7 +175,8 @@ public class RemotingChangeAcceptedTaxonToSynonymHandlerE4 extends RemotingCdmHa
                 }else if (result == 1){
                     newSecUuid = newTaxonUuid;
                 }else if (result == 0){
-                    newSecUuid = oldSecUuid;
+                    secHandling = SecReferenceHandlingEnum.KeepAlways;
+
                 }else{
                     return null;
                 }