/*
* @(#)GroupFigure.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;
import org.jhotdraw.geom.Geom;
import java.awt.geom.*;
/**
* A {@link org.jhotdraw.draw.Figure} which groups a collection of figures.
*
* @author Werner Randelshofer
* @version $Id$
*/
public class GroupFigure extends AbstractCompositeFigure {
private static final long serialVersionUID = 1L;
/** Creates a new instance. */
public GroupFigure() {
setConnectable(false);
}
/**
* This is a default implementation that chops the point at the rectangle
* returned by getBounds() of the figure.
* <p>
* Figures which have a non-rectangular shape need to override this method.
* <p>
* FIXME Invoke chop on each child and return the closest point.
*/
public Point2D.Double chop(Point2D.Double from) {
Rectangle2D.Double r = getBounds();
return Geom.angleToPoint(r, Geom.pointToAngle(r, from));
}
/** Returns true if all children of the group are transformable. */
@Override
public boolean isTransformable() {
for (Figure f : children) {
if (! f.isTransformable()) {
return false;
}
}
return true;
}
}