public void invokeStep(int x, int y, int anchorX, int anchorY, DrawingView view) { int dx = x - anchorX; int dy = y - anchorY; RoundRectangleFigure owner = (RoundRectangleFigure) owner(); Rectangle r = owner.displayBox(); Point originalRadius = ((RadiusHandle.UndoActivity) getUndoActivity()).getOldRadius(); int rx = Geom.range(0, r.width, 2 * (originalRadius.x / 2 + dx)); int ry = Geom.range(0, r.height, 2 * (originalRadius.y / 2 + dy)); owner.setArc(rx, ry); }
protected boolean resetRadius() { FigureEnumeration fe = getAffectedFigures(); if (!fe.hasNextFigure()) { return false; } RoundRectangleFigure currentFigure = (RoundRectangleFigure) fe.nextFigure(); Point figureRadius = currentFigure.getArc(); currentFigure.setArc(getOldRadius().x, getOldRadius().y); setOldRadius(figureRadius); return true; }
public Point locate() { RoundRectangleFigure owner = (RoundRectangleFigure) owner(); Point radius = owner.getArc(); Rectangle r = owner.displayBox(); return new Point(r.x + radius.x / 2 + OFFSET, r.y + radius.y / 2 + OFFSET); }