123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package drawing;
- import javafx.event.ActionEvent;
- import javafx.event.Event;
- import javafx.event.EventHandler;
- import javafx.scene.input.MouseEvent;
- import javafx.scene.shape.Shape;
- /**
- * Created by lewandowski on 20/12/2020.
- */
- public abstract class ShapeButtonHandler implements EventHandler<Event> {
- private DrawingPane drawingPane;
- protected double originX;
- protected double originY;
- protected double destinationX;
- protected double destinationY;
- protected Shape shape;
- public ShapeButtonHandler(DrawingPane drawingPane) {
- this.drawingPane = drawingPane;
- }
- @Override
- public void handle(Event event) {
- if (event instanceof ActionEvent) {
- drawingPane.addEventHandler(MouseEvent.MOUSE_PRESSED, this);
- }
- if (event instanceof MouseEvent) {
- if (event.getEventType().equals(MouseEvent.MOUSE_PRESSED)) {
- drawingPane.addEventHandler(MouseEvent.MOUSE_RELEASED, this);
- originX = ((MouseEvent) event).getX();
- originY = ((MouseEvent) event).getY();
- }
- if (event.getEventType().equals(MouseEvent.MOUSE_RELEASED)) {
- destinationX = ((MouseEvent) event).getX();
- destinationY = ((MouseEvent) event).getY();
- shape = createShape();
- drawingPane.addShape(shape);
- drawingPane.removeEventHandler(MouseEvent.MOUSE_PRESSED, this);
- drawingPane.removeEventHandler(MouseEvent.MOUSE_RELEASED, this);
- }
- }
- }
- protected abstract Shape createShape();
- }
|