diff options
Diffstat (limited to 'bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ConnectionRenderingFigure.java')
-rw-r--r-- | bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ConnectionRenderingFigure.java | 215 |
1 files changed, 0 insertions, 215 deletions
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ConnectionRenderingFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ConnectionRenderingFigure.java deleted file mode 100644 index 7192108cd9..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ConnectionRenderingFigure.java +++ /dev/null @@ -1,215 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.gef.util.figures; - -import java.util.Iterator; -import java.util.List; - -import org.eclipse.draw2d.ColorConstants; -import org.eclipse.draw2d.Graphics; -import org.eclipse.draw2d.IFigure; -import org.eclipse.draw2d.RectangleFigure; -import org.eclipse.draw2d.geometry.Point; -import org.eclipse.draw2d.geometry.PointList; -import org.eclipse.draw2d.geometry.Rectangle; -import org.eclipse.gef.GraphicalEditPart; - - -public class ConnectionRenderingFigure extends RectangleFigure -{ - protected boolean isOutlined = true; - protected IFigure primaryLayer; - - public ConnectionRenderingFigure(IFigure primaryLayer) - { - setOpaque(false); - this.primaryLayer = primaryLayer; - //setFocusTraversable(false); - //setEnabled(false); - } - - protected boolean isMouseEventTarget() - { - return false; - } - - public boolean containsPoint(int x, int y) - { - return false; - } - - protected void fillShape(Graphics graphics) - { - graphics.setForegroundColor(ColorConstants.black); - drawLines(graphics, primaryLayer); - } - - protected void outlineShape(Graphics graphics) - { - if (isOutlined) - { - super.outlineShape(graphics); - } - } - - protected void drawLines(Graphics graphics, IFigure figure) - { - if (figure instanceof IConnectedEditPartFigure) - { - IConnectedEditPartFigure graphNodeFigure = (IConnectedEditPartFigure)figure; - List connectedFigures = graphNodeFigure.getConnectedFigures(IConnectedEditPartFigure.RIGHT_CONNECTION); - int connectedFiguresSize = connectedFigures.size(); - - if (connectedFiguresSize > 0) - { - IConnectedEditPartFigure firstGraphNodeFigure = (IConnectedEditPartFigure)connectedFigures.get(0); - Rectangle r = graphNodeFigure.getConnectionFigure().getBounds(); - - int x1 = r.x + r.width; - int y1 = r.y + r.height/2; - - int startOfChildBox = firstGraphNodeFigure.getConnectionFigure().getBounds().x; - int x2 = x1 + (startOfChildBox - x1) / 3; - int y2 = y1; - - if (connectedFiguresSize == 1) - { - graphics.drawLine(x1, y1, startOfChildBox, y2); - } - else // (connectedFigures.length > 1) - { - graphics.drawLine(x1, y1, x2, y2); - - int minY = Integer.MAX_VALUE; - int maxY = -1; - - for (Iterator i = connectedFigures.iterator(); i.hasNext(); ) - { - IConnectedEditPartFigure connectedFigure = (IConnectedEditPartFigure)i.next(); - Rectangle childConnectionRectangle = connectedFigure.getConnectionFigure().getBounds(); - int y = childConnectionRectangle.y + childConnectionRectangle.height / 2; - minY = Math.min(minY, y); - maxY = Math.max(maxY, y); - graphics.drawLine(x2, y, childConnectionRectangle.x, y); - } - graphics.drawLine(x2, minY, x2, maxY); - } - } - } - - //boolean visitChildren = true; - List children = figure.getChildren(); - for (Iterator i = children.iterator(); i.hasNext(); ) - { - IFigure child = (IFigure)i.next(); - drawLines(graphics, child); - } - } - - // This method supports the preview connection line function related to drag and drop - // - public PointList getConnectionPoints(GraphicalEditPart parentEditPart, GraphicalEditPart childRefEditPart, Rectangle draggedFigureBounds) - { - PointList pointList = new PointList(); - int[] data = new int[1]; - Point a = getConnectionPoint(parentEditPart, childRefEditPart, data); - if (a != null) - { - int draggedFigureBoundsY = draggedFigureBounds.y + draggedFigureBounds.height/2; - - pointList.addPoint(a); - //pointList.addPoint(new Point(draggedFigureBounds.x, draggedFigureBoundsY)); - - if (data[0] == 0) // insert between 2 items - { - int x = a.x + (draggedFigureBounds.x - a.x)/2; - pointList.addPoint(new Point(x, a.y)); - pointList.addPoint(new Point(x, draggedFigureBoundsY)); - pointList.addPoint(new Point(draggedFigureBounds.x, draggedFigureBoundsY)); - } - else // insert at first or last position - { - pointList.addPoint(new Point(a.x, draggedFigureBoundsY)); - pointList.addPoint(new Point(draggedFigureBounds.x, draggedFigureBoundsY)); - } - } - return pointList; - } - - - // This method supports the preview connection line function related to drag and drop - // - protected Point getConnectionPoint(GraphicalEditPart parentEditPart, GraphicalEditPart childRefEditPart, int[] data) - { - Point point = null; - List childList = parentEditPart.getChildren(); - - if (parentEditPart.getFigure() instanceof IConnectedEditPartFigure && childList.size() > 0) - { - point = new Point(); - - GraphicalEditPart prev = null; - GraphicalEditPart next = null; - - for (Iterator i = childList.iterator(); i.hasNext(); ) - { - Object o = i.next(); - if (o instanceof GraphicalEditPart) - { - GraphicalEditPart childEditPart = (GraphicalEditPart)o; - if (childEditPart.getFigure() instanceof IConnectedEditPartFigure) - { - if (childEditPart == childRefEditPart) - { - next = childEditPart; - break; - } - prev = childEditPart; - } - } - } - - - if (next != null && prev != null) - { - int ya = getConnectedEditPartConnectionBounds(prev).getCenter().y; - int yb = getConnectedEditPartConnectionBounds(next).getCenter().y; - point.y = ya + (yb - ya)/2; - data[0] = 0; - } - else if (prev != null) // add it last - { - point.y = getConnectedEditPartConnectionBounds(prev).getCenter().y; - data[0] = 1; - } - else if (next != null) // add it first! - { - point.y = getConnectedEditPartConnectionBounds(next).getCenter().y; - data[0] = -1; - } - - if (next != null || prev != null) - { - GraphicalEditPart child = prev != null ? prev : next; - int startOfChildBox = getConnectedEditPartConnectionBounds(child).x; - Rectangle r = getConnectedEditPartConnectionBounds(parentEditPart); - int x1 = r.x + r.width; - point.x = x1 + (startOfChildBox - x1) / 3; - } - } - return point; - } - - protected Rectangle getConnectedEditPartConnectionBounds(GraphicalEditPart editPart) - { - return ((IConnectedEditPartFigure)editPart.getFigure()).getConnectionFigure().getBounds(); - } -}
\ No newline at end of file |