Package org.joshy.sketch.modes.pixel

Source Code of org.joshy.sketch.modes.pixel.SelectionTool

package org.joshy.sketch.modes.pixel;

import org.joshy.gfx.draw.FlatColor;
import org.joshy.gfx.draw.GFX;
import org.joshy.gfx.event.MouseEvent;
import org.joshy.sketch.pixel.model.PixelSelection;

import java.awt.*;
import java.awt.geom.Point2D;

/**
* Let you create a rectangular selection which can then
* be operated on.
*/
public class SelectionTool extends PixelTool {
    private Point2D startPoint;
    private Point2D currentPoint;

    public SelectionTool(PixelDocContext pixelDocContext) {
        super(pixelDocContext);
    }

    @Override
    protected void mousePressed(MouseEvent event, Point2D cursor) {
        startPoint = event.getPointInNodeCoords(getContext().getCanvas());
        getContext().getCanvas().redraw();
    }

    @Override
    protected void mouseDragged(MouseEvent event, Point2D cursor) {
        currentPoint = event.getPointInNodeCoords(getContext().getCanvas());
        getContext().getCanvas().redraw();
    }

    @Override
    protected void mouseReleased(MouseEvent event, Point2D cursor) {
        PixelSelection selection = getContext().getCanvas().getSelection();
        selection.clear();
        selection.add(new Rectangle(
                (int)startPoint.getX(),
                (int)startPoint.getY(),
                (int)(currentPoint.getX()-startPoint.getX()),
                (int)(currentPoint.getY()-startPoint.getY())
                ));
        getContext().getCanvas().redraw();
        startPoint = null;
        currentPoint = null;
    }

    @Override
    public void drawOverlay(GFX gfx) {
        if(currentPoint != null) {
            gfx.setPaint(FlatColor.RED);
            gfx.drawRect(
                    startPoint.getX(),
                    startPoint.getY(),
                    currentPoint.getX()-startPoint.getX(),
                    currentPoint.getY()-startPoint.getY()
                    );
        }
    }
}
TOP

Related Classes of org.joshy.sketch.modes.pixel.SelectionTool

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.