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;
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);
}
return postExecute(taxonBase);
}
+
+
}
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>
this.element = taxon;
this.parentNode = parentNode;
this.synonym = synonym;
- this.namesInHomotypicGroup = namesInHomotypicalGroup;
+ //this.namesInHomotypicGroup = namesInHomotypicalGroup;
}
/* (non-Javadoc)
}
monitor.worked(20);
- synonym.setSec(null);
+ element.removeSynonym(synonym);
newNode = parentNode.addChildTaxon(newTaxon, null, null);
/*if(namesInHomotypicGroup != null){
\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
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