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.stage.Stage;
import shape.tp3.*;

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(300, 300); 
        GraphicsContext graphicsContext = canvas.getGraphicsContext2D();

        ShapeContainer shapeContainer = new ShapeContainer();

        Shape rect = new Rectangle(Color.GRAY, new Point2D(150, 150), new Point2D(250, 250));
        Shape decoratedRect = new BorderDecorator(new CenterDecorator(rect, 5), 5);
        shapeContainer.addShape(decoratedRect);

        Shape triangle = new Polygon(Color.GRAY,
                new Point2D(100, 50),
                new Point2D(150, 150),
                new Point2D(50, 150));
        Shape decoratedTriangle = new BorderDecorator(new CenterDecorator(triangle, 5), 5);
        shapeContainer.addShape(decoratedTriangle);

        shapeContainer.draw(graphicsContext);

        root.getChildren().add(canvas);
        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }
}