package org.openstreetmap.josm.plugins.piclayer.actions.transform.affine;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.awt.event.MouseEvent;
import java.awt.geom.NoninvertibleTransformException;
import java.awt.geom.Point2D;
import org.openstreetmap.josm.gui.MapFrame;
import org.openstreetmap.josm.plugins.piclayer.actions.GenericPicTransformAction;
import org.openstreetmap.josm.tools.ImageProvider;
// old version - ctrl move point (not transforming picture)
@SuppressWarnings("serial")
public class MovePointAction extends GenericPicTransformAction {
public MovePointAction(MapFrame frame) {
super(tr("PicLayer Move point"), tr("Point added/moved"), "movepoint", tr("Drag or create point on the picture"), frame, ImageProvider.getCursor("crosshair", null));
}
@Override
protected void doAction(MouseEvent e) {
try {
Point2D pressed = currentLayer.transformPoint(e.getPoint());
if (selectedPoint != null) {
currentLayer.getTransformer().replaceOriginPoint(selectedPoint, pressed);
selectedPoint = pressed;
}
} catch (NoninvertibleTransformException e1) {
e1.printStackTrace();
}
}
@Override
public void mouseClicked(MouseEvent e) {
if (currentLayer == null)
return;
try {
Point2D pressed = currentLayer.transformPoint(e.getPoint());
if (selectedPoint == null)
currentLayer.getTransformer().addOriginPoint(pressed);
currentCommand.addIfChanged();
} catch (NoninvertibleTransformException e1) {
e1.printStackTrace();
}
}
@Override
public void enterMode() {
super.enterMode();
updateDrawPoints(true);
}
@Override
public void exitMode() {
super.exitMode();
updateDrawPoints(false);
}
}