package org.archstudio.bna.things.shapes;
import java.awt.Dimension;
import java.awt.Shape;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import org.archstudio.bna.IBNAView;
import org.archstudio.bna.ICoordinate;
import org.archstudio.bna.ICoordinateMapper;
import org.archstudio.bna.things.AbstractThingPeer;
import org.archstudio.bna.ui.IUIResources;
import org.archstudio.bna.utils.BNAUtils;
import org.eclipse.swt.graphics.Rectangle;
public class ReshapeHandleThingPeer<T extends ReshapeHandleThing> extends AbstractThingPeer<T> {
public ReshapeHandleThingPeer(T thing, IBNAView view, ICoordinateMapper cm) {
super(thing, view, cm);
}
Shape createLocalShape() {
Point2D ap = cm.worldToLocal(t.getAnchorPoint());
Dimension size = t.getSize();
return new Rectangle2D.Double(ap.getX() - size.width / 2, ap.getY() - size.height / 2, size.width, size.height);
}
@Override
public boolean draw(Rectangle localBounds, IUIResources r) {
Shape localShape = createLocalShape();
r.fillShape(localShape, t.getColor(), null, 1);
return true;
}
@Override
public boolean isInThing(ICoordinate location) {
return createLocalShape().contains(BNAUtils.toPoint2D(location.getLocalPoint()));
}
}