package draganddrop;

import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.shape.*;
import javafx.scene.paint.*;
import javafx.scene.image.*;
import javafx.scene.input.*;

public class DraggableImage extends ImageView {
    public-init var maxX = 200;
    public-init var maxY = 200;
    var startX = 0.0;
    var startY = 0.0;
    
    override var onMousePressed = function(e:MouseEvent):Void {
        startX = e.sceneX-translateX;
        startY = e.sceneY-translateY;
    }
    
    override var onMouseDragged = function(e:MouseEvent):Void {
        var tx = e.sceneX-startX;
        if(tx < 0) { tx = 0; }
        if(tx > maxX-image.width) { tx = maxX-image.width; }
        translateX = tx;

        var ty = e.sceneY-startY;
        if(ty < 0) { ty = 0; }
        if(ty > maxY-image.height) { ty = maxY-image.height; }
        translateY = ty;
    }
    
    override var onMouseReleased = function(e:MouseEvent):Void {
    }
}