diff --git a/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java b/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java
index a8b0864644c24785dcb1d6db4133e2c663a48745..6bfce0f35edd54aefd17399072aa49f0bf7ba861 100644
--- a/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java
+++ b/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java
@@ -1,6 +1,8 @@
 package fr.univlille.sae.classification.controller;
 
 import fr.univlille.sae.classification.model.ClassificationModel;
+import fr.univlille.sae.classification.model.Iris;
+import fr.univlille.sae.classification.view.MainStageView;
 import javafx.fxml.FXML;
 import javafx.scene.control.Button;
 import javafx.scene.control.Spinner;
@@ -31,6 +33,8 @@ public class AddDataController {
     @FXML
     private Spinner<Double> petalWidthSpinner;
 
+    MainStageView mainStageView;
+
     @FXML
     public void initialize() {
         sepalLengthSpinner.setValueFactory(new SpinnerValueFactory.DoubleSpinnerValueFactory(0.0, 200.0, 3.0,0.1));
@@ -44,23 +48,16 @@ public class AddDataController {
         petalLengthSpinner.setEditable(true);
         petalWidthSpinner.setEditable(true);
 
-
-        confirmAdd.setOnAction(event -> handleConfirmAdd());
     }
 
-    private void handleConfirmAdd() {
-        double sepalLength = sepalLengthSpinner.getValue();
-        double sepalWidth = sepalWidthSpinner.getValue();
-        double petalLength = petalLengthSpinner.getValue();
-        double petalWidth = petalWidthSpinner.getValue();
-
-        stage.close();
+    public void setMainStageView(MainStageView mainStageView) {
+        this.mainStageView = mainStageView;
     }
 
     public void validate() throws IOException {
-
-
+        System.out.println("validé");
         ClassificationModel.getClassificationModel().ajouterDonnee(sepalLengthSpinner.getValue(), sepalWidthSpinner.getValue(), petalLengthSpinner.getValue(), petalWidthSpinner.getValue());
+        mainStageView.update(mainStageView.getModel(),new Iris(sepalWidthSpinner.getValue(),sepalLengthSpinner.getValue(),petalWidthSpinner.getValue(),petalLengthSpinner.getValue()));
         stage.close();
     }
 
diff --git a/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java b/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java
index cacb8e322aa55ea5b07d520f258cb5c579631a34..21408450a73762a7f38a082592a4389dcae1da32 100644
--- a/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java
+++ b/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java
@@ -3,7 +3,6 @@ package fr.univlille.sae.classification.controller;
 import fr.univlille.sae.classification.model.ClassificationModel;
 import fr.univlille.sae.classification.view.AxesSettingsView;
 import fr.univlille.sae.classification.view.LoadDataView;
-import fr.univlille.sae.classification.view.MainStageView;
 import fr.univlille.sae.classification.view.AddDataView;
 import fr.univlille.sae.classification.view.MainStageView;
 import javafx.fxml.FXML;
@@ -75,9 +74,8 @@ public class MainStageController {
      */
     public void openAddData() throws IOException {
 
-        AddDataView addDataView = new AddDataView(ClassificationModel.getClassificationModel(), stage);
+        AddDataView addDataView = new AddDataView(ClassificationModel.getClassificationModel(), stage, mainStageView);
         addDataView.show();
-    }
 
 
     }
diff --git a/src/main/java/fr/univlille/sae/classification/view/AddDataView.java b/src/main/java/fr/univlille/sae/classification/view/AddDataView.java
index 9d57add41e32b0d34ea7d74c15bb130ab009d32a..3519b8f09de62b6c2073c9c69f327264d52a9c26 100644
--- a/src/main/java/fr/univlille/sae/classification/view/AddDataView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/AddDataView.java
@@ -1,5 +1,7 @@
 package fr.univlille.sae.classification.view;
 
+import fr.univlille.sae.classification.controller.AddDataController;
+import fr.univlille.sae.classification.controller.AxesSettingsController;
 import fr.univlille.sae.classification.model.ClassificationModel;
 import javafx.fxml.FXMLLoader;
 import javafx.stage.Modality;
@@ -13,10 +15,12 @@ public class AddDataView {
 
     private ClassificationModel model;
     private Stage owner;
+    private MainStageView mainStageView;
 
-    public AddDataView(ClassificationModel model, Stage owner) {
+    public AddDataView(ClassificationModel model, Stage owner, MainStageView mainStageView) {
         this.model = model;
         this.owner = owner;
+        this.mainStageView = mainStageView;
     }
 
 
@@ -33,6 +37,10 @@ public class AddDataView {
         loader.setLocation(fxmlFileUrl);
         Stage root = loader.load();
 
+        AddDataController controller = loader.getController();
+
+        controller.setMainStageView(mainStageView);
+
         root.setResizable(false);
         root.initOwner(owner);
         root.initModality(Modality.APPLICATION_MODAL);
diff --git a/src/main/java/fr/univlille/sae/classification/view/MainStageView.java b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
index 6a109423c1cd925a295d7bd69b742ad3ffd48614..c6ec0e9111813b611e88b298dad7b803cdc66984 100644
--- a/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
@@ -90,7 +90,26 @@ public class MainStageView implements Observer {
 
     @Override
     public void update(Observable observable, Object data) {
-
+        if(scatterChart == null) throw new IllegalStateException();
+        if(!(observable instanceof ClassificationModel)) throw new IllegalStateException();
+        if(data instanceof Iris) {
+            Iris iris = (Iris) data;
+            if(actualX == null || actualY == null) {
+                controller.setAxesSelected("Aucuns axes sélectionnés");
+                return;
+            }
+            XYChart.Data<Double, Double> dataPoint = new XYChart.Data<>(
+                    iris.getDataType(actualX),
+                    iris.getDataType(actualY)
+            );
+            Circle circle = new Circle(5);
+            circle.setFill(iris.getColor());
+            dataPoint.setNode(circle);
+            if (!scatterChart.getData().isEmpty()) {
+                XYChart.Series series = (XYChart.Series) scatterChart.getData().get(0);
+                series.getData().add(dataPoint);
+            }
+        }
     }
 
     public void setActualX(String actualX) {