\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.taxon.ITreeNode;\r
+import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException;\r
import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;\r
-import eu.etaxonomy.taxeditor.model.NameHelper;\r
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;\r
import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;\r
import eu.etaxonomy.taxeditor.operations.MoveTaxonOperation;\r
\r
TaxonNode targetTaxonNode = (TaxonNode) targetTreeNode;\r
\r
- // TODO what should happen here?\r
- // Make sure parentTaxon is not a child\r
+ // Make sure parentTaxon is not the drop target\r
if (!childTaxonNode.isTopmostNode() && childTaxonNode.getParent().equals(targetTaxonNode)){\r
- \r
- MessageDialog.openError(NavigationUtil.getShell(), "Can't move taxon.",\r
- "'" + NameHelper.getDisplayName(childTaxonNode.getTaxon()) + "' sits above " +\r
- "'" + NameHelper.getDisplayName(targetTaxonNode.getTaxon()) + "' " +\r
- "in the taxonomic hierarchy.");\r
- \r
return Status.CANCEL_STATUS;\r
}\r
\r
}\r
\r
\r
+\r
IUndoableOperation operation = new MoveTaxonOperation\r
("Move Taxon", workspaceUndoContext, childTaxonNode, targetTreeNode, this);\r
NavigationUtil.executeOperation(operation); \r
+\r
\r
\r
logger.info("Moved taxon " + childTaxonNode + " to new parent " + targetTreeNode);\r
\r
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
import eu.etaxonomy.cdm.model.taxon.ITreeNode;\r
+import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException;\r
import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
import eu.etaxonomy.taxeditor.store.CdmStore;\r
+import eu.etaxonomy.taxeditor.store.StoreUtil;\r
\r
/**\r
* Change the taxonomic parent of a given taxon.\r
// find the new parent node\r
ITreeNode newParentTreeNode = CdmStore.getTaxonTreeService().getTreeNodeByUuid(newParentTreeNodeUuid);\r
// add node to new parent\r
- TaxonNode newChild = newParentTreeNode.addChildNode(taxonNode, newParentTreeNode.getReference(), newParentTreeNode.getMicroReference(), taxonNode.getSynonymToBeUsed());\r
- \r
- // commit the conversation\r
- conversation.commit(true); \r
- return newChild;\r
+ try{\r
+ TaxonNode newChild = newParentTreeNode.addChildNode(taxonNode, newParentTreeNode.getReference(), newParentTreeNode.getMicroReference(), taxonNode.getSynonymToBeUsed());\r
+ // commit the conversation\r
+ conversation.commit(true); \r
+ return newChild;\r
+ }catch(IllegalAncestryException e){\r
+ StoreUtil.warningDialog("Illegal ancestry", e.getMessage());\r
+ }\r
+ return null;\r
}\r
}\r