/*
* @(#)ConnectionEndHandle.java
*
* Copyright (c) 1996-2010 The authors and contributors of JHotDraw.
* You may not use, copy or modify this file, except in compliance with the
* accompanying license terms.
*/
package org.jhotdraw.draw.handle;
import org.jhotdraw.draw.connector.Connector;
import org.jhotdraw.draw.*;
import java.awt.geom.*;
/**
* A {@link Handle} which allows to connect the end of a
* {@link ConnectionFigure} to another figure.
*
* @author Werner Randelshofer
* @version $Id: ConnectionEndHandle.java -1 $
*/
public class ConnectionEndHandle extends AbstractConnectionHandle {
/**
* Constructs the connection handle for the given start figure.
*/
public ConnectionEndHandle(ConnectionFigure owner) {
super(owner);
}
/**
* Sets the start of the connection.
*/
@Override
protected void connect(Connector c) {
getOwner().setEndConnector(c);
}
/**
* Disconnects the start figure.
*/
@Override
protected void disconnect() {
getOwner().setEndConnector(null);
}
@Override
protected Connector getTarget() {
return getOwner().getEndConnector();
}
/**
* Sets the start point of the connection.
*/
@Override
protected void setLocation(Point2D.Double p) {
getOwner().willChange();
getOwner().setEndPoint(p);
getOwner().changed();
}
/**
* Returns the start point of the connection.
*/
@Override
protected Point2D.Double getLocation() {
return getOwner().getEndPoint();
}
@Override
protected boolean canConnect(Connector existingEnd, Connector targetEnd) {
return getOwner().canConnect(existingEnd, targetEnd);
}
@Override
protected int getBezierNodeIndex() {
return getBezierFigure().getNodeCount() - 1;
}
}