Fixed #528 - Dropping ConceptComposite onto other groups not yet implemented
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / editor / name / ConceptComposite.java
index 9bb9a61eb871e53f0f759375b818c4f0c310a754..5914b94216d8e0ceb47db229928ab00f77c42a0b 100644 (file)
@@ -9,14 +9,21 @@
 \r
 package eu.etaxonomy.taxeditor.editor.name;\r
 \r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
 import org.eclipse.swt.graphics.Font;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.ui.views.properties.IPropertySource;\r
 \r
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
+import eu.etaxonomy.taxeditor.editor.EditorUtil;\r
+import eu.etaxonomy.taxeditor.operations.ChangeConceptRelationshipTypeOperation;\r
+import eu.etaxonomy.taxeditor.operations.ChangeConceptToSynonymOperation;\r
+import eu.etaxonomy.taxeditor.operations.ChangeHomotypicGroupOperation;\r
+import eu.etaxonomy.taxeditor.operations.ChangeSynonymToMisapplicationOperation;\r
 import eu.etaxonomy.taxeditor.propertysheet.name.ConceptPropertySource;\r
 \r
 /**\r
@@ -131,6 +138,30 @@ public class ConceptComposite extends NameComposite {
        public boolean isAcceptedTaxonIsFromTaxon() {\r
                return acceptedTaxonIsFromTaxon;\r
        }\r
+       \r
+       public boolean setParent(Composite parent) {\r
+               boolean doSetParent = false;\r
+               \r
+               if (parent instanceof MisappliedGroupComposite) {\r
+                       IUndoableOperation operation = new ChangeConceptRelationshipTypeOperation("change to misapplication", \r
+                                       editor.getUndoContext(), taxon, relatedTaxon, TaxonRelationshipType.MISAPPLIED_NAME_FOR(), editor); //$NON-NLS-1$\r
+                       EditorUtil.executeOperation(operation);\r
+                       \r
+                       doSetParent = true;\r
+               }\r
+               \r
+               if (parent instanceof HomotypicalGroupComposite) {\r
+                       HomotypicalGroup homotypicalGroup = \r
+                               ((HomotypicalGroupComposite)parent).getGroup();\r
+                       IUndoableOperation operation = new ChangeConceptToSynonymOperation\r
+                                       ("change concept to synonym", editor.getUndoContext(), taxon, relatedTaxon, homotypicalGroup, editor);\r
+                       EditorUtil.executeOperation(operation);\r
+               \r
+                       doSetParent = true;\r
+               }\r
+               \r
+               return doSetParent;\r
+       }\r
 }\r
 \r
 \r