/* * 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.diagram.ui.notation.uml.part; import java.util.List; import org.eclipse.draw2d.ColorConstants; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.PolygonDecoration; import org.eclipse.gef.DragTracker; import org.eclipse.gef.EditPolicy; import org.eclipse.gef.Request; import org.eclipse.gef.editparts.AbstractGraphicalEditPart; import org.teiid.designer.diagram.ui.connection.NodeConnectionEditPart; import org.teiid.designer.diagram.ui.connection.NodeConnectionModel; import org.teiid.designer.diagram.ui.connection.decorator.DecoratorFactory; import org.teiid.designer.diagram.ui.figure.DiagramPolylineConnection; import org.teiid.designer.diagram.ui.util.ConnectionSelectionTracker; import org.teiid.designer.diagram.ui.util.DiagramConnectionEndpointEditPolicy; import org.teiid.designer.diagram.ui.util.DiagramNodeSelectionEditPolicy; /** * ForeignKeyLinkEditPart * * @since 8.0 */ public class UmlGeneralizationLinkEditPart extends NodeConnectionEditPart { private DragTracker dragTracker = null; /** * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure() **/ @Override protected IFigure createFigure() { DiagramPolylineConnection connectionFigure = new DiagramPolylineConnection(); List toolTips = ((NodeConnectionModel)getModel()).getToolTipStrings(); if( toolTips != null && !toolTips.isEmpty() ) connectionFigure.setToolTip(connectionFigure.createToolTip(toolTips)); PolygonDecoration newDecoration = DecoratorFactory.getDecorator(((NodeConnectionModel)getModel()).getTargetDecoratorId()); int iStandardWidth = 1; if( newDecoration != null ) { newDecoration.setLineWidth(iStandardWidth); newDecoration.setFill(true); connectionFigure.setTargetDecoration(newDecoration); newDecoration.setBackgroundColor( ((AbstractGraphicalEditPart)getDiagramViewer().getContents()).getFigure().getBackgroundColor()); } connectionFigure.setLineStyle( ((NodeConnectionModel)getModel()).getLineStyle() ); connectionFigure.setLineWidth( iStandardWidth ); connectionFigure.setForegroundColor(ColorConstants.darkBlue); return connectionFigure; } /* (non-Javadoc) * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies() */ @Override protected void createEditPolicies() { installEditPolicy(EditPolicy.CONNECTION_ENDPOINTS_ROLE, new DiagramConnectionEndpointEditPolicy()); installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new DiagramNodeSelectionEditPolicy()); } /* (non-Javadoc) * @see org.eclipse.gef.EditPart#getDragTracker(org.eclipse.gef.Request) */ @Override public DragTracker getDragTracker(Request req) { if( dragTracker == null ) dragTracker = new ConnectionSelectionTracker(this, getDiagramViewer().getSelectionHandler()); return dragTracker; } }