add correct handling for keepOrWarn when moving taxa
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / e4 / TreeNodeDropAdapterE4.java
index 79b2a941ca65a1e31a510a3c5f756348a2254d82..6be38d97d1746d9c65727dc3b9ed279f5e216a04 100644 (file)
@@ -210,7 +210,7 @@ public class TreeNodeDropAdapterE4 extends ViewerDropAdapter implements IPostMon
         }
         secHandling = PreferencesUtil.getSecReferenceHandlingPreference();
         newSecUuid = null;
-        if (secHandling.equals(SecReferenceHandlingEnum.AlwaysSelect) || (secReferences.size() > 1 && secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect)) || (secReferences.size() == 1 && secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect) && !secReferences.contains(parentSecUuid))){
+        if ( secHandling.equals(SecReferenceHandlingEnum.AlwaysSelect) || (secReferences.size() > 1 && secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) || secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect)) || (secReferences.size() == 1 && (secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) ||secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect)) && !secReferences.contains(parentSecUuid))){
             //The moved nodes have different secundum references
             String message = null;
             String[] options = null;
@@ -221,7 +221,12 @@ public class TreeNodeDropAdapterE4 extends ViewerDropAdapter implements IPostMon
                 message = Messages.TreeNodeDropAdapter_Select_Sec_Reference_Handling_message;
                 options = new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep,  Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select, Messages.TreeNodeDropAdapter_Select_Sec_Reference_Parent, };
             }
-            int result = MessagingUtils.confirmDialog(Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title, message, options);
+            int result = 0;
+            if (secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) ){
+                MessageDialog.openWarning(null, "Secundum references differ", Messages.MoveTaxon_Different_Secundum_References);
+            }else{
+                result = MessagingUtils.confirmDialog(Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title, message, options);
+            }
 
 //            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});