fix #2187
authorKatja Luther <k.luther@bgbm.org>
Mon, 13 Oct 2014 12:02:58 +0000 (12:02 +0000)
committerKatja Luther <k.luther@bgbm.org>
Mon, 13 Oct 2014 12:02:58 +0000 (12:02 +0000)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInputDataChangeBehaviour.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicalGroupBasionymOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/DeleteTermBaseOperation.java

index f99c0a220686446bce4da0d02d2f8eb799b0c9c1..cd0c310169ec780ca3fb4863a3accd5ecf1a977f 100644 (file)
@@ -44,7 +44,7 @@ public class TaxonEditorInputDataChangeBehaviour extends
        /** {@inheritDoc} */
        @Override
        public void reactOnDataChange(CdmDataChangeMap events) {
-               // TODO Auto-generated method stub
+               source.update(events);
 
        }
 }
index 3e5c3f37896d6932d0384ab88cde5443e0bd0a58..8a462f6ee35925426df0620fe869e2b0e80050e3 100644 (file)
@@ -9,15 +9,22 @@
 
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
+import java.util.Set;
+
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.remote.dto.tdwg.voc.TaxonName;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
@@ -57,11 +64,23 @@ public class ChangeHomotypicalGroupBasionymOperation extends
                        throws ExecutionException {
                
                TaxonNameBase<?, ?> name = taxonBase.getName();
+               
                monitor.worked(20);
+               name = HibernateProxyHelper.deproxy(name, TaxonNameBase.class);
+               HomotypicalGroup group = HibernateProxyHelper.deproxy(name.getHomotypicalGroup(), HomotypicalGroup.class);
+        TaxonNameBase oldBasionym = name.getBasionym();
         
                name.setAsGroupsBasionym();
+               
                monitor.worked(40);
-
+               oldBasionym = HibernateProxyHelper.deproxy(oldBasionym, TaxonNameBase.class);
+               if (oldBasionym != null){
+                       Set<TaxonBase> taxonBases = oldBasionym.getTaxonBases();
+                       if (!taxonBases.isEmpty()){
+                               TaxonBase oldBasionymTaxonBase = taxonBases.iterator().next();
+                               postExecute(oldBasionymTaxonBase);
+                       }
+               }
                return postExecute(taxonBase);
        }
 
@@ -88,4 +107,6 @@ public class ChangeHomotypicalGroupBasionymOperation extends
                                
                return postExecute(taxonBase);
        }
+       
+       
 }
index 316af1d4c4cedfd72fc434b6e1349c66931d736c..1b5349173beab2afb4e424aa76c5b6a784279ac0 100644 (file)
@@ -40,12 +40,12 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPostOperation {
 
        private Taxon newTaxon;
-       private final Synonym synonym;
+       private Synonym synonym;
        private final ITaxonTreeNode parentNode;
 
        private TaxonNode newNode;
 
-       private final Set<TaxonNameBase> namesInHomotypicGroup;
+       //private final Set<TaxonNameBase> namesInHomotypicGroup;
 
        /**
         * <p>Constructor for ChangeSynonymToAcceptedTaxonOperation.</p>
@@ -66,7 +66,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
                this.element = taxon;
                this.parentNode = parentNode;
                this.synonym = synonym;
-               this.namesInHomotypicGroup = namesInHomotypicalGroup;
+               //this.namesInHomotypicGroup = namesInHomotypicalGroup;
        }
 
        /* (non-Javadoc)
@@ -85,7 +85,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
                }
                monitor.worked(20);
 
-               synonym.setSec(null);
+               element.removeSynonym(synonym);
                newNode = parentNode.addChildTaxon(newTaxon, null, null);
 
                /*if(namesInHomotypicGroup != null){
index d9b72b1ac19f515c659cedf54983b4451334dfc9..043332141b11245bd21714525c6e8b070aa65639 100644 (file)
@@ -84,7 +84,11 @@ public class DeleteTermBaseOperation extends AbstractPostTaxonOperation {
                        \r
                        DeleteResult result =   CdmStore.getService(IVocabularyService.class).delete((TermVocabulary)termBase);\r
                        if (result.isError()){\r
-                               //TODO: Error message!\r
+                               StringBuffer errorString = new StringBuffer();\r
+                               for (Exception e:result.getExceptions()){\r
+                                       errorString.append(e.getMessage() + "\\n");\r
+                               }\r
+                               MessageDialog.openError(null, "Delete failed", errorString.toString());\r
                        }\r
                        \r
                } else if (termBase instanceof DefinedTermBase) {\r
@@ -122,7 +126,11 @@ public class DeleteTermBaseOperation extends AbstractPostTaxonOperation {
                        DeleteResult result =   CdmStore.getService(ITermService.class).delete((DefinedTermBase)termBase);\r
                        \r
                        if (result.isError()){\r
-                               MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());\r
+                               StringBuffer errorString = new StringBuffer();\r
+                               for (Exception e:result.getExceptions()){\r
+                                       errorString.append(e.getMessage() + "\\n");\r
+                               }\r
+                               MessageDialog.openError(null, "Delete failed", errorString.toString());\r
                        }\r
                }\r
                \r