/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.mapping.ui.part; import org.eclipse.emf.ecore.EObject; import org.teiid.designer.diagram.ui.model.DiagramModelNode; import org.teiid.designer.diagram.ui.notation.uml.part.UmlClassifierEditPart; import org.teiid.designer.diagram.ui.part.DiagramEditPart; import org.teiid.designer.diagram.ui.util.DiagramUiUtilities; import org.teiid.designer.metamodels.diagram.Diagram; import org.teiid.designer.transformation.ui.actions.TransformationSourceManager; import org.teiid.designer.transformation.ui.part.TransformationDropEditPartHelper; import org.teiid.designer.transformation.ui.part.TransformationEditPart; import org.teiid.designer.transformation.util.TransformationHelper; import org.teiid.designer.ui.viewsupport.ModelObjectUtilities; /** * @since 8.0 */ public class MappingTransformationDropEditPartHelper extends TransformationDropEditPartHelper { public MappingTransformationDropEditPartHelper(Object transformation) { super(transformation); } @Override protected EObject getTransformation(DiagramEditPart editPart) { if( editPart instanceof MappingDiagramEditPart ) { return TransformationSourceManager.getTransformationFromDiagram((Diagram)editPart.getModelObject()); } else if( editPart instanceof TransformationEditPart ) { return editPart.getModelObject(); } else if( editPart instanceof UmlClassifierEditPart ) { if( !ModelObjectUtilities.isVirtual(editPart.getModelObject())) { return null; } // check to see if it's the "Target" DiagramModelNode parentClassifierNode = DiagramUiUtilities.getClassifierParentNode((DiagramModelNode)editPart.getModel()); if( parentClassifierNode != null ) { if(TransformationHelper.isValidSqlTransformationTarget(parentClassifierNode.getModelObject())) { return TransformationHelper.getTransformationMappingRoot(parentClassifierNode.getModelObject()); } // Now we check for is Virtual? } } return null; } }