import org.eclipse.jface.action.Action;\r
import org.eclipse.jface.resource.ImageDescriptor;\r
\r
+import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
import eu.etaxonomy.taxeditor.model.CdmUtil;\r
\r
public void run() {\r
\r
+ // TODO: Call a taxon service method similar to makeTaxonSynonym()\r
+ // instead of implementing the logic here\r
+ \r
taxon.removeSynonym(synonym);\r
\r
Taxon parentTaxon = taxon.getTaxonomicParent();\r
newTaxon.addSynonym(newSynonym, SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF()); \r
}\r
\r
+ // Move the other synonyms from old accepted taxon to new accepted taxon\r
+ for (Synonym synonym: taxon.getSynonyms()) {\r
+ SynonymRelationshipType synRelType = SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF();\r
+ if (CdmUtil.isNameHomotypic(synonym.getName(), newTaxon) != true) {\r
+ synRelType = SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF();\r
+ }\r
+ newTaxon.addSynonym(synonym, synRelType);\r
+ taxon.removeSynonym(synonym);\r
+ }\r
+ \r
+ // Move misapplied names\r
+ for (Taxon misappliedNameTaxon: taxon.getMisappliedNames()) {\r
+ newTaxon.addMisappliedName(misappliedNameTaxon, \r
+ misappliedNameTaxon.getName().getCitation(), \r
+ ""); //TODO: Set the microcitation\r
+ //TODO: uncomment next line\r
+// taxon.removeTaxon(misappliedNameTaxon, TaxonRelationshipType.MISAPPLIED_NAME_FOR());\r
+ }\r
+ \r
+ // Move descriptions\r
+ for(TaxonDescription taxDescription : taxon.getDescriptions()){\r
+ newTaxon.addDescription(taxDescription);\r
+ taxon.removeDescription(taxDescription);\r
+ }\r
+ \r
firePropertyChange(ITaxEditorConstants.TAXON, null, newTaxon);\r
} \r
}
\ No newline at end of file