From d11d2595a76f2808db15a490a5aca1abb3772925 Mon Sep 17 00:00:00 2001
From: MANSOUR Chadi <chadi.mansour@etu.univ-amu.fr>
Date: Fri, 4 Oct 2024 08:36:12 +0000
Subject: [PATCH] Revert "copied ancient code to start the new TP"

This reverts commit d81c9d6d61d09ca0ea6eb4eefc6923636d961769
---
 src/main/java/serializer/DrawerWithSave.java |  4 +++
 src/main/java/serializer/ShapeReader.java    |  1 +
 src/main/java/shape/AbstractShape.java       | 33 --------------------
 src/main/java/shape/App.java                 | 17 +++-------
 src/main/java/shape/BorderDecorator.java     | 30 ------------------
 src/main/java/shape/CenterDecorator.java     | 26 ---------------
 src/main/java/shape/Decorator.java           | 27 ----------------
 src/main/java/shape/Polygon.java             | 29 -----------------
 src/main/java/shape/Rectangle.java           | 26 +++++++--------
 src/main/java/shape/ShapeContainer.java      |  4 +--
 src/main/java/state/Drawer.java              |  1 +
 11 files changed, 24 insertions(+), 174 deletions(-)
 delete mode 100644 src/main/java/shape/AbstractShape.java
 delete mode 100644 src/main/java/shape/BorderDecorator.java
 delete mode 100644 src/main/java/shape/CenterDecorator.java
 delete mode 100644 src/main/java/shape/Decorator.java
 delete mode 100644 src/main/java/shape/Polygon.java

diff --git a/src/main/java/serializer/DrawerWithSave.java b/src/main/java/serializer/DrawerWithSave.java
index e3b746f..2852edf 100644
--- a/src/main/java/serializer/DrawerWithSave.java
+++ b/src/main/java/serializer/DrawerWithSave.java
@@ -1,10 +1,14 @@
 package serializer;
 
+import javafx.scene.canvas.Canvas;
 import javafx.scene.control.Alert;
 import javafx.stage.FileChooser;
+import shape.Shape;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.List;
+import java.util.stream.Collectors;
 
 
 public class DrawerWithSave extends state.Drawer {
diff --git a/src/main/java/serializer/ShapeReader.java b/src/main/java/serializer/ShapeReader.java
index 54540cc..4905948 100644
--- a/src/main/java/serializer/ShapeReader.java
+++ b/src/main/java/serializer/ShapeReader.java
@@ -7,6 +7,7 @@ import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
 import java.util.List;
+import java.util.stream.Collector;
 
 public class ShapeReader {
     public static List<Shape> read(File file) throws IOException {
diff --git a/src/main/java/shape/AbstractShape.java b/src/main/java/shape/AbstractShape.java
deleted file mode 100644
index db97dad..0000000
--- a/src/main/java/shape/AbstractShape.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package shape;
-
-import javafx.geometry.Point2D;
-import javafx.scene.canvas.GraphicsContext;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public abstract class AbstractShape implements Shape {
-
-    protected List<Point2D> points = new ArrayList<>();
-
-    public void addPoints(Point2D... points){
-        this.points.addAll(Arrays.asList(points));
-    }
-    @Override
-    public int pointsCount() {
-        return points.size();
-    }
-
-    @Override
-    public Point2D point(int index) {
-        if( index >= 0 && index < points.size()){
-            return points.get(index);
-        }else {
-            throw new IndexOutOfBoundsException("Index out of bounds");
-        }
-    }
-
-    @Override
-    public abstract void draw(GraphicsContext context) ;
-}
diff --git a/src/main/java/shape/App.java b/src/main/java/shape/App.java
index 0ba88a5..1a519e1 100644
--- a/src/main/java/shape/App.java
+++ b/src/main/java/shape/App.java
@@ -7,6 +7,7 @@ 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;
 
 
@@ -20,20 +21,12 @@ public class App extends Application {
     @Override
     public void start(Stage primaryStage) {
         Group root = new Group();
-        Canvas canvas = new Canvas(300, 300);
+        Canvas canvas = new Canvas(130, 110);
         GraphicsContext graphicsContext = canvas.getGraphicsContext2D();
         ShapeContainer shapeContainer = new ShapeContainer();
-
-        Shape rectangle = new Rectangle(Color.BLUE, new Point2D(50, 50), new Point2D(150, 100));
-        rectangle = new BorderDecorator(rectangle, 10);
-        rectangle = new CenterDecorator(rectangle, 5);
-        shapeContainer.addShape(rectangle);
-
-        Shape polygone = new Polygon(Color.YELLOW, new Point2D(210,100),new Point2D(250,100),new Point2D(150,160), new Point2D(90,100));
-        polygone = new BorderDecorator(polygone, 15);
-        polygone = new CenterDecorator(polygone, 5);
-        shapeContainer.addShape(polygone);
-
+        graphicsContext.setFill(Color.AQUAMARINE);
+        graphicsContext.fillOval(10,10,10,10);
+        shapeContainer.addShape(new Rectangle(Color.BLUE,new Point2D(10,10), new Point2D(40,40)));
         shapeContainer.draw(graphicsContext);
         root.getChildren().add(canvas);
         primaryStage.setScene(new Scene(root));
diff --git a/src/main/java/shape/BorderDecorator.java b/src/main/java/shape/BorderDecorator.java
deleted file mode 100644
index bb08656..0000000
--- a/src/main/java/shape/BorderDecorator.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package shape;
-
-import javafx.geometry.Point2D;
-import javafx.scene.canvas.GraphicsContext;
-import javafx.scene.paint.Color;
-
-public class BorderDecorator extends Decorator {
-
-    private final double radius;
-
-    public BorderDecorator(Shape decoratedShape ,double radius) {
-        super(decoratedShape);
-        this.radius = radius;
-    }
-    protected void drawDecoration(GraphicsContext context) {
-        context.setStroke(Color.BLACK);
-        context.setLineWidth(2);
-
-        if (decoratedshape.pointsCount() >= 2){
-            Point2D point0 = decoratedshape.point(0);
-            Point2D point1 = decoratedshape.point(1);
-
-            double x = Math.min(point0.getX(), point1.getX());
-            double y = Math.min(point0.getY(), point1.getY());
-            double width = Math.abs(point1.getX() - point0.getX());
-            double height = Math.abs(point1.getY() - point0.getY());
-            context.strokeRoundRect(x,y, width,height,radius, radius);
-        }
-    }
-}
diff --git a/src/main/java/shape/CenterDecorator.java b/src/main/java/shape/CenterDecorator.java
deleted file mode 100644
index 8a7c68a..0000000
--- a/src/main/java/shape/CenterDecorator.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package shape;
-
-import javafx.geometry.Point2D;
-import javafx.scene.canvas.GraphicsContext;
-import javafx.scene.paint.Color;
-
-public class CenterDecorator extends Decorator{
-    private final double radius;
-    public CenterDecorator(Shape decoratedShape, double radius) {
-        super(decoratedShape);
-        this.radius = radius;
-    }
-        protected void drawDecoration(GraphicsContext context) {
-
-        if (decoratedshape.pointsCount() >= 2) {
-            Point2D point0 = decoratedshape.point(0);
-            Point2D point1 = decoratedshape.point(1);
-
-            double centerX = point0.getX() + point1.getX() / 2;
-            double centerY = point0.getY() + point1.getY() / 2;
-
-            context.setFill(Color.RED);
-            context.strokeOval(centerX - radius, centerY - radius, radius * 2, radius * 2);
-        }
-    }
-}
diff --git a/src/main/java/shape/Decorator.java b/src/main/java/shape/Decorator.java
deleted file mode 100644
index 08bed2e..0000000
--- a/src/main/java/shape/Decorator.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package shape;
-
-import javafx.geometry.Point2D;
-import javafx.scene.canvas.GraphicsContext;
-
-public abstract class Decorator implements Shape {
-    protected final Shape decoratedshape;
-    public Decorator(Shape decoratedShape) {
-        this.decoratedshape = decoratedShape;
-    }
-    @Override
-    public int pointsCount() {
-        return decoratedshape.pointsCount();
-    }
-
-    @Override
-    public Point2D point(int index) {
-        return decoratedshape.point(index);
-    }
-
-    @Override
-    public void draw(GraphicsContext context) {
-        decoratedshape.draw(context);
-        drawDecoration(context);
-    }
-    protected abstract void drawDecoration(GraphicsContext context) ;
-}
diff --git a/src/main/java/shape/Polygon.java b/src/main/java/shape/Polygon.java
deleted file mode 100644
index 9140320..0000000
--- a/src/main/java/shape/Polygon.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package shape;
-
-import javafx.geometry.Point2D;
-import javafx.scene.canvas.GraphicsContext;
-import javafx.scene.paint.Color;
-
-public class Polygon extends AbstractShape {
-
-    private final Color color;
-
-    public Polygon(Color color, Point2D... points) {
-        this.color = color;
-        addPoints(points);
-    }
-
-
-    @Override
-    public void draw(GraphicsContext context) {
-        context.setStroke(color);
-        context.beginPath();
-        context.moveTo(points.get(0).getX(), points.get(0).getY());
-        for (int i = 1; i < pointsCount() ; i++) {
-            context.lineTo(points.get(i).getX(), points.get(i).getY());
-        }
-        context.closePath();
-        context.stroke();
-
-    }
-}
diff --git a/src/main/java/shape/Rectangle.java b/src/main/java/shape/Rectangle.java
index efb2f0a..b0e9062 100644
--- a/src/main/java/shape/Rectangle.java
+++ b/src/main/java/shape/Rectangle.java
@@ -4,26 +4,24 @@ import javafx.geometry.Point2D;
 import javafx.scene.canvas.GraphicsContext;
 import javafx.scene.paint.Color;
 
-public class Rectangle extends AbstractShape{
-    private final Color color;
-
-    public Rectangle(Color color, Point2D point0, Point2D point1){
+public class Rectangle implements Shape{
+    Color color;
+    Rectangle(Color color, Point2D point0, Point2D point1){
         this.color = color;
-        addPoints(point0, point1);
     }
 
     @Override
-    public void draw(GraphicsContext context) {
-        context.setStroke(color);
+    public int pointsCount() {
+        return 0;
+    }
 
-        Point2D point0 = points.get(0);
-        Point2D point1 = points.get(1);
+    @Override
+    public Point2D point(int index) {
+        return null;
+    }
 
-        double x = Math.min(point0.getX(), point1.getX());
-        double y = Math.min(point0.getY(), point1.getY());
-        double width = Math.abs(point1.getX() - point0.getX());
-        double height = Math.abs(point1.getY() - point0.getY());
+    @Override
+    public void draw(GraphicsContext context) {
 
-        context.strokeRect(x,y,width,height);
     }
 }
diff --git a/src/main/java/shape/ShapeContainer.java b/src/main/java/shape/ShapeContainer.java
index aae70ed..91c7d29 100644
--- a/src/main/java/shape/ShapeContainer.java
+++ b/src/main/java/shape/ShapeContainer.java
@@ -9,9 +9,7 @@ public class ShapeContainer{
 
     private List<Shape> shapes = new ArrayList<>();
 
-    public void addShape(Shape shape){
-        shapes.add(shape);
-    }
+    public void addShape(Shape shape){}
 
     public void  draw(GraphicsContext context){
         for(Shape shape : shapes)
diff --git a/src/main/java/state/Drawer.java b/src/main/java/state/Drawer.java
index c6e5f27..67b9e1c 100644
--- a/src/main/java/state/Drawer.java
+++ b/src/main/java/state/Drawer.java
@@ -1,6 +1,7 @@
 package state;
 
 import javafx.scene.canvas.Canvas;
+import shape.Circle;
 import shape.Shape;
 
 import java.util.ArrayList;
-- 
GitLab