ref #8767: check for publish when moving taxon
authorKatja Luther <k.luther@bgbm.org>
Thu, 4 Mar 2021 16:34:45 +0000 (17:34 +0100)
committerKatja Luther <k.luther@bgbm.org>
Thu, 4 Mar 2021 16:34:45 +0000 (17:34 +0100)
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/l10n/Messages.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/l10n/messages.properties
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/l10n/messages_de.properties
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TreeNodeDropAdapterE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingChangeAcceptedTaxonToSynonymHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingMoveTaxonNodeHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/RemotingChangeAcceptedTaxonToSynonymOperation.java

index 34d6b2079c2995adfa189d225ad7b2dc53e33df0..4768c14fc7d9f2b49fe7e5db4e52a46e3c296513 100644 (file)
@@ -115,6 +115,8 @@ public class Messages extends NLS {
     public static String RemotingMoveTaxonNodeHandler_TARGET_NODE_MESSAGE;
     public static String RemotingMoveTaxonNodeHandler_UNSAVED_PARENT;
     public static String RemotingMoveTaxonNodeHandler_UNSAVED_PARENT_MESSAGE;
+    public static String RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_TITLE;
+    public static String RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_MESSAGE;
     public static String RemotingMoveTaxonOperation_MOVE_OP;
     public static String RemotingUpdatePolytomousKeyAllNodesOperation_UPDATE_OP;
     public static String Root_CREATE_CLASSIFICATION;
index 30b4541538641bf5ffa2cb9ac8f6489dfc047607..a966be33871a9635fff7b7a9fd4c378d1f86bbbc 100644 (file)
@@ -96,6 +96,8 @@ RemotingMoveTaxonNodeHandler_TARGET_NODE=Target node
 RemotingMoveTaxonNodeHandler_TARGET_NODE_MESSAGE=Do you want to move the Taxonnode as child or behind the target node.
 RemotingMoveTaxonNodeHandler_UNSAVED_PARENT=Unsaved Parent Taxon
 RemotingMoveTaxonNodeHandler_UNSAVED_PARENT_MESSAGE=There are unsaved changes in the parent taxon. Please save first.
+RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_TITLE=Different publish states
+RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_MESSAGE=The new parent taxon and the moved taxon/taxa do not have the same publish status.
 RemotingMoveTaxonOperation_MOVE_OP=Move Taxon operation
 RemotingUpdatePolytomousKeyAllNodesOperation_UPDATE_OP=Update All Polytomous Key Nodes operation
 Root_CREATE_CLASSIFICATION=Creating initial classification
index 385d00eeff965d00eed228e3d547b2d6894d9697..82ac5d42a1941f10e966a780e01548f839387ea2 100644 (file)
@@ -96,6 +96,8 @@ RemotingMoveTaxonNodeHandler_TARGET_NODE=Zielknoten.
 RemotingMoveTaxonNodeHandler_TARGET_NODE_MESSAGE=Wollen Sie den Taxonknoten als Kind oder hinter den Zielknoten verschieben.
 RemotingMoveTaxonNodeHandler_UNSAVED_PARENT=Ungespeichertes Eltern-Taxon
 RemotingMoveTaxonNodeHandler_UNSAVED_PARENT_MESSAGE=Es gibt ungespeicherte Änderungen im Eltern-Taxon. Bitte speichen Sie erst.
+RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_TITLE=Unterschiedliche Publikationsstatus
+RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_MESSAGE=Das neue Elterntaxon und das verschobene Taxon bzw. die verschobenen Taxa haben unterschiedliche Publikationsstatus.
 RemotingMoveTaxonOperation_MOVE_OP=Taxon verschieben
 RemotingUpdatePolytomousKeyAllNodesOperation_UPDATE_OP=Alle polytomen Schlüssel updaten
 Root_CREATE_CLASSIFICATION=Initiale Klassifikation erstellen
index f00baaa600733572edad1f6f1d14c93fb9266bb8..9429b66845344c15e1bf3ea5c2ac839e8bf8a186 100644 (file)
@@ -193,10 +193,17 @@ public class TreeNodeDropAdapterE4 extends ViewerDropAdapter implements IPostMon
                this.targetITaxonTreeNode = targetITaxonTreeNode;
         Set<UUID> uuids = new HashSet<UUID>();
         TaxonNodeDto node = null;
+        boolean targetIsPublish = targetITaxonTreeNode.isPublish();
+        boolean isPublishEqual = true;
         while(taxIterator.hasNext()){
             node = taxIterator.next();
             uuids.add(node.getUuid());
+            isPublishEqual &= targetIsPublish == node.isPublish();
         }
+        if (!isPublishEqual){
+            MessageDialog.openWarning(null, "Publish status differ", Messages.RemotingChangeAcceptedTaxonToSynonym_warning_publish);
+        }
+
         IUndoContext workspaceUndoContext = taxonNavigator.getUndoContext();
          int movingTypeInt = 0;
                if (PreferencesUtil.isNodesSortedNaturally()){
index 84eaf198dfdc13f25f6538f1e8704666c3d9b8da..cd472080835c140e58bf43b7424c977d088170e6 100644 (file)
@@ -122,11 +122,13 @@ public class RemotingChangeAcceptedTaxonToSynonymHandlerE4 extends RemotingCdmHa
         Set<UUID> excludeTaxa = new HashSet<>();
         Set<UUID> secUuids = new HashSet<>();
         Set<UUID> nodeUuids = new HashSet();
+        boolean published = true;
 
         for (TaxonNodeDto oldNode:oldTaxonNodes){
                excludeTaxa.add(oldNode.getTaxonUuid());
                secUuids.add(oldNode.getSecUuid());
                nodeUuids.add(oldNode.getUuid());
+
         }
         TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(shell,
 //                new ConversationHolderMock(),
@@ -178,6 +180,7 @@ public class RemotingChangeAcceptedTaxonToSynonymHandlerE4 extends RemotingCdmHa
         }
 
 
+
         RemotingChangeAcceptedTaxonToSynonymOperation rcattso =
                 new RemotingChangeAcceptedTaxonToSynonymOperation(getTrigger(),
                         false,
index 33d27900b987a9e0e78a65265f3cf1fd5dac08e4..14683b397815e07a1b38466474c1fdf9fbbb7bd4 100644 (file)
@@ -49,6 +49,7 @@ public class RemotingMoveTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
     private Set<UUID> oldTaxonNodeUUIDs = new HashSet<>();
     private TaxonNavigatorE4 navigator;
     private UUID classificationUuid = null;
+    boolean isPublish = true;
 
     public RemotingMoveTaxonNodeHandlerE4() {
         super(TaxonNavigatorLabels.MOVE_TAXON_LABEL);
@@ -74,6 +75,7 @@ public class RemotingMoveTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
             obj = iter.next();
             if(obj instanceof TaxonNodeDto) {
                 oldTaxonNodeUUIDs.add(((TaxonNodeDto)obj).getUuid());
+                isPublish &= ((TaxonNodeDto)obj).isPublish();
                 if (classificationUuid == null){
                     classificationUuid = ((TaxonNodeDto)obj).getClassificationUUID();
                 }
@@ -117,6 +119,11 @@ public class RemotingMoveTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
                     classificationUuid, true);
         }
 
+        if (parentTaxonNode.getTaxon().isPublish() != isPublish){
+            MessageDialog.openWarning(shell,
+                    Messages.RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_TITLE,
+                    Messages.RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_MESSAGE);
+        }
 
         if(parentTaxonNode != null){
             if(NavigationUtil.isDirty(parentTaxonNode, partService)){
index f90ff58cc15fbd0a5cfe4d9d594a676a6ee865f5..1323c2d1b497572b20b076aef2b0d4203d7034ce 100644 (file)
@@ -154,7 +154,7 @@ public class RemotingChangeAcceptedTaxonToSynonymOperation extends RemotingCdmUp
            }
 
        }
-       if ( oldTaxaPublished != newTaxon.isPublish()){
+       if (newTaxon != null && oldTaxaPublished != newTaxon.isPublish()){
             MessagingUtils.warningDialog("Publish flag", null, Messages.RemotingChangeAcceptedTaxonToSynonym_warning_publish);
         }
        updateNameEditor();