package shape;

import javafx.application.Application;
import javafx.geometry.Point2D;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import javafx.stage.Stage;

import java.util.ArrayList;
import java.util.List;


public class App extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        Group root = new Group();
        Canvas canvas = new Canvas(260, 220);
        GraphicsContext graphicsContext = canvas.getGraphicsContext2D();
        ShapeContainer shapeContainer = new ShapeContainer();
        graphicsContext.setFill(Color.AQUAMARINE);
        graphicsContext.fillOval(10,10,10,10);
        Rectangle rectangle = new Rectangle(Color.BLUE,new Point2D(100,100), new Point2D(200,200));
        shapeContainer.addShape(rectangle);
        List<Point2D> points = new ArrayList<>();
        points.add(new Point2D(10,10));
        points.add(new Point2D(100,40));
        points.add(new Point2D(60,60));
        points.add(new Point2D(40,100));
        Polygon polygon = new Polygon(Color.BLACK,points);
        shapeContainer.addShape(polygon);
        BorderDecorator borderDecorator = new BorderDecorator(rectangle,10);
        borderDecorator.drawDecoration(graphicsContext);
        shapeContainer.draw(graphicsContext);
        root.getChildren().add(canvas);
        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }
}