fix creation of hybrids after deleting cascading in relationships
authorKatja Luther <k.luther@bgbm.org>
Mon, 14 May 2018 11:04:35 +0000 (13:04 +0200)
committerKatja Luther <k.luther@bgbm.org>
Mon, 14 May 2018 11:05:40 +0000 (13:05 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/e4/TaxonEditorInputE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateNewTaxonBaseOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInExistingHomotypicalGroupOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInNewGroupOperation.java

index 2e3337301c3b9ca4ab8545364b96c2a453eaac00..613b03cb93d8fcea9404e152cc0d6a94f905a451 100644 (file)
@@ -66,7 +66,9 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
     private TaxonNode taxonNode;
 
     private Map<TaxonBase, TaxonBaseDeletionConfigurator> toDelete = new HashMap<>();
-    private Set<TaxonBase> toSaveNew = new HashSet<>();
+    private Set<Synonym> toSaveNewSynonym = new HashSet<>();
+    private Set<Taxon> toSaveNewConcept = new HashSet<>();
+
 
     private Set<AbstractPostTaxonOperation> operations = new HashSet<>();
 
@@ -299,8 +301,11 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
         this.operations.add(operation);
     }
 
-    public void addToSaveNew(TaxonBase toSaveNew) {
-        this.toSaveNew.add(toSaveNew);
+    public void addToSaveNewSynonym(Synonym toSaveNew) {
+        this.toSaveNewSynonym.add(toSaveNew);
+    }
+    public void addToSaveNewConcept(Taxon toSaveNew) {
+        this.toSaveNewConcept.add(toSaveNew);
     }
 
     @Override
@@ -322,7 +327,12 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
         }
         operations.clear();
 
-        CdmStore.getService(ITaxonService.class).save(toSaveNew);
+        for (Synonym syn: toSaveNewSynonym){
+            CdmStore.getService(ITaxonService.class).createSynonym(taxonNode.getTaxon().getUuid(),syn);
+        }
+//        for (Taxon taxon: toSaveNewConcept){
+//            CdmStore.getService(ITaxonService.class).createConcept(taxonNode.getTaxon().getUuid(),taxon);
+//        }
 
         CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
 
index eb65e700ae33422745843fc436fed9f3651243b4..5bb57de1f7ad79e23a6cdd64a6ca3cb65f0359f1 100755 (executable)
@@ -12,6 +12,7 @@ import java.util.UUID;
 
 import org.eclipse.core.commands.operations.IUndoContext;
 
+import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
@@ -55,7 +56,11 @@ public abstract class CreateNewTaxonBaseOperation extends AbstractPostTaxonOpera
         Object activePart = EditorUtil.getActivePart();
         if (activePart instanceof TaxonNameEditorE4){
            editor = (TaxonNameEditorE4) activePart;
-           editor.getEditorInput().addToSaveNew(newTaxonBase);
+           if (newTaxonBase instanceof Synonym){
+               editor.getEditorInput().addToSaveNewSynonym((Synonym)newTaxonBase);
+           }else{
+               editor.getEditorInput().addToSaveNewConcept((Taxon)newTaxonBase);
+           }
            editor.setDirty();
         }
     }
index af7d5f841ba7f8683f43f3a7e01311d158172408..0a638ee5d2cfabc67113ec6665592df85e839a8b 100644 (file)
@@ -70,7 +70,7 @@ public class CreateSynonymInExistingHomotypicalGroupOperation extends
                        synonym = element.addHeterotypicSynonymName(newSynonymName);
                }
 
-//             addToSaveList(synonym);
+               addToSaveList(synonym);
                monitor.worked(40);
 
 //             Synonym affectedSynonym = null;
index 49fb8e0eff676cd20ceaad7beb7416bab7e4685b..9e16134682269f5c3bce672f7caaa18c8565eab6 100644 (file)
@@ -64,6 +64,7 @@ public class CreateSynonymInNewGroupOperation extends CreateNewTaxonBaseOperatio
                monitor.worked(20);
                HibernateProxyHelper.deproxy(element);
                newSynonym = element.addHeterotypicSynonymName(newSynonymName);
+               addToSaveList(newSynonym);
                monitor.worked(40);
 
                return postExecute(newSynonym);