diff --git a/src/main/java/fr/univlille/sae/classification/ClassificationApp.java b/src/main/java/fr/univlille/sae/classification/ClassificationApp.java
index 145eb3a499cc9b13ec62058508c4933b03f4c0b2..c3c9cd7cab7f88c31ab2a550418d84daef27a770 100644
--- a/src/main/java/fr/univlille/sae/classification/ClassificationApp.java
+++ b/src/main/java/fr/univlille/sae/classification/ClassificationApp.java
@@ -7,9 +7,19 @@ import javafx.stage.Stage;
 
 import java.io.IOException;
 
+/**
+ * Classe principale pour l'application de classification.
+ * Cette classe initialise et lance l'interface graphique de l'application.
+ */
 public class ClassificationApp extends Application {
 
 
+    /**
+     * Point d'entrée principal pour l'initialisation de l'interface utilisateur.
+     * Cette méthode configure la vue principale en utilisant une instance du modèle
+     * de classification, puis affiche la fenêtre principale.
+     * @param stage la fenêtre principale de l'application.
+     */
     public void start(Stage stage) throws IOException {
         ClassificationModel model = ClassificationModel.getClassificationModel();
         MainStageView view = new MainStageView(model);
@@ -17,7 +27,11 @@ public class ClassificationApp extends Application {
         view.show();
     }
 
-    // Ouvre l'application
+    /**
+     * Point d'entrée principal de l'application.
+     * Cette méthode lance l'application JavaFX.
+     * @param args les arguments de ligne de commande.
+     */
     public static void main(String[] args) {
         Application.launch(args);
     }
diff --git a/src/main/java/fr/univlille/sae/classification/Main.java b/src/main/java/fr/univlille/sae/classification/Main.java
index c1bafba0e15b9d93c8067cca55fecbe14473c900..84adac9c52050badc03a6fd071244f7d2e781d39 100644
--- a/src/main/java/fr/univlille/sae/classification/Main.java
+++ b/src/main/java/fr/univlille/sae/classification/Main.java
@@ -6,8 +6,14 @@ import javafx.application.Application;
 import javafx.stage.Stage;
 
 import java.io.IOException;
-
+/**
+ * Cette classe redirige l'exécution vers la classe principale de l'application,
+ */
 public class Main {
+    /**
+     * Point d'entrée principal de l'application.
+     * @param args les arguments de ligne de commande.
+     */
     public static void main(String[] args) {
             ClassificationApp.main(args);
     }
diff --git a/src/main/java/fr/univlille/sae/classification/utils/Observer.java b/src/main/java/fr/univlille/sae/classification/utils/Observer.java
index e17a1a34c046e7a215b5afb60b6e712240813021..0f7f2081b45365e98f517f4ec7fc366582e3c6cf 100644
--- a/src/main/java/fr/univlille/sae/classification/utils/Observer.java
+++ b/src/main/java/fr/univlille/sae/classification/utils/Observer.java
@@ -1,9 +1,28 @@
 package fr.univlille.sae.classification.utils;
 
-public interface Observer {
 
+/**
+ * Interface pour implémenter le modèle Observateur.
+ * Cette interface définit les méthodes que les classes doivent implémenter pour agir
+ * comme des observateurs dans le cadre du modèle Observateur/Observé.
+ * Les observateurs sont notifiés des changements d'état des objets observés
+ * via les méthodes `update'.
+ */
+public interface Observer {
 
+    /**
+     * Méthode appelée pour notifier l'observateur qu'un changement s'est produit
+     * dans l'objet observé.
+     * @param observable l'objet observé qui a subi un changement.
+     */
     void update(Observable observable);
+
+    /**
+     * Méthode appelée pour notifier l'observateur qu'un changement s'est produit
+     * dans l'objet observé, avec des données supplémentaires.
+     * @param observable l'objet observé qui a subi un changement.
+     * @param data des informations supplémentaires concernant le changement.
+     */
     void update(Observable observable, Object data);
 
 
diff --git a/src/main/java/fr/univlille/sae/classification/utils/ViewUtil.java b/src/main/java/fr/univlille/sae/classification/utils/ViewUtil.java
index 2217c066ed36bdc8b7c4522533f301623810569e..8613467602476d7429b0085881ba871cfac2c9dd 100644
--- a/src/main/java/fr/univlille/sae/classification/utils/ViewUtil.java
+++ b/src/main/java/fr/univlille/sae/classification/utils/ViewUtil.java
@@ -92,8 +92,6 @@ public class ViewUtil {
                 tempHBox.getChildren().addAll(rectangle, label);
                 line.getChildren().add(tempHBox);
 
-            }
-        }
 
         if(colorsString.length < 7) legend.getChildren().add(line);
 
diff --git a/src/main/java/fr/univlille/sae/classification/view/DataStageView.java b/src/main/java/fr/univlille/sae/classification/view/DataStageView.java
index dd613b18194e6ef2594f868ee0ea6ebcef707d4f..68d70c468c480b1ac178c38e901cfddf6f8ee524 100644
--- a/src/main/java/fr/univlille/sae/classification/view/DataStageView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/DataStageView.java
@@ -1,6 +1,7 @@
 package fr.univlille.sae.classification.view;
 
 import fr.univlille.sae.classification.controller.DataStageController;
+import fr.univlille.sae.classification.controller.MainStageController;
 import fr.univlille.sae.classification.model.ClassificationModel;
 import fr.univlille.sae.classification.model.DataType;
 import fr.univlille.sae.classification.model.Iris;
@@ -14,7 +15,6 @@ import javafx.scene.Node;
 import javafx.scene.chart.ScatterChart;
 import javafx.scene.chart.XYChart;
 import javafx.scene.layout.HBox;
-import javafx.scene.layout.VBox;
 import javafx.scene.shape.Circle;
 import javafx.scene.shape.Rectangle;
 import javafx.stage.Stage;
@@ -33,10 +33,10 @@ import java.util.Map;
  */
 public class DataStageView extends DataVisualizationView implements Observer {
 
-    private ClassificationModel model;
-    private DataStageController controller;
 
-    private Map<String, ScatterChart.Series<Double, Double>> serieList;
+
+
+
 
     private XYChart.Series series1;
     private XYChart.Series series2;
@@ -50,9 +50,9 @@ public class DataStageView extends DataVisualizationView implements Observer {
      * @param model le modèle de classification utilisé pour gérer les données.
      */
     public DataStageView(ClassificationModel model) {
-        super();
-        this.serieList = new HashMap<String, ScatterChart.Series<Double, Double>>();
-        this.model = model;
+        super(model);
+
+
         this.series1 = new XYChart.Series();
         this.series2 = new XYChart.Series();
         this.series3 = new XYChart.Series();
@@ -78,8 +78,9 @@ public class DataStageView extends DataVisualizationView implements Observer {
             root.setResizable(false);
             root.setTitle("SAE3.3 - Logiciel de classification");
             root.show();
+            controller = (MainStageController) controller;
             controller = loader.getController();
-            controller.setDataStageView(this);
+            ((DataStageController) controller).setDataStageView(this);
             scatterChart = controller.getScatterChart();
             scatterChart.setLegendVisible(false);
             scatterChart.getData().addAll(series4, series1, series2, series3);
@@ -94,125 +95,13 @@ public class DataStageView extends DataVisualizationView implements Observer {
         }
     }
 
-    /**
-     * Met à jour l'affichage des données en fonction des changements dans le modèle.
-     * @param observable modèle observé.
-     */
-    @Override
-    public void update(Observable observable) {
-        try {
-            if (scatterChart == null || !(observable instanceof ClassificationModel)) {
-                System.err.println("Erreur de mise à jour.");
-                return;
-            }
-
-            scatterChart.getData().clear();
-            serieList.clear();
-
-            if (actualX == null && actualY == null) {
-                controller.setAxesSelected("Aucuns axes sélectionnés");
-            } else {
-                controller.setAxesSelected("");
-                controller.setAxesSelectedDisable();
-
-                List<LoadableData> points = new ArrayList<>(model.getDatas());
-                points.addAll(model.getDataToClass().keySet());
-                for (LoadableData data : points) {
-                    Object xValue = data.getAttributesNames().get(actualX);
-                    Object yValue = data.getAttributesNames().get(actualY);
-
-                    Double x = 0.0;
-                    if (xValue instanceof Integer) {
-                        x = ((Integer) xValue).doubleValue();
-                    } else if (xValue instanceof Double) {
-                        x = (Double) xValue;
-                    }
-
-                    Double y = 0.0;
-                    if (yValue instanceof Integer) {
-                        y = ((Integer) yValue).doubleValue();
-                    } else if (yValue instanceof Double) {
-                        y = (Double) yValue;
-                    }
-
-                    ScatterChart.Data<Double, Double> dataPoint = new ScatterChart.Data<>(x, y);
-
-                    Node nodePoint = ViewUtil.getForm(data, new Circle(5), controller);
-
-                    ScatterChart.Series<Double, Double> editSerie = serieList.get(data.getClassification());
-                    if(editSerie == null){
-                        editSerie = new ScatterChart.Series<Double, Double>();
-                    }
-                    if(data.getClassification().equals("undefined") || model.getDataToClass().containsKey(data)) {
-                        nodePoint = ViewUtil.getForm(data, new Rectangle(10,10), controller);
-                    }
-                    dataPoint.setNode(nodePoint);
-                    editSerie.getData().add(dataPoint);
-                    serieList.put(data.getClassification(), editSerie);
-                }
-
-                for(String serie : serieList.keySet()) {
-                    serieList.get(serie).setName(serie);
-                }
-                scatterChart.getData().addAll(serieList.values());
-
-                VBox vBox = ViewUtil.loadLegend();
-                controller.loadLegend(vBox);
-            }
-        } catch (Exception e) {
-            System.err.println("Erreur de mise à jour : " + e.getMessage());
-        }
-    }
-
-    /**
-     * Met à jour l'affichage en ajoutant un nouveau point de données.
-     * @param observable modèle observé.
-     * @param data point de données à ajouter.
-     */
-    @Override
-    public void update(Observable observable, Object data) {
-        try {
-            if (scatterChart == null || !(observable instanceof ClassificationModel)) {
-                System.err.println("Erreur de mise à jour.");
-                return;
-            }
-            LoadableData newData = (LoadableData) data;
-            if (actualX == null || actualY == null) {
-                controller.setAxesSelected("Aucuns axes sélectionnés");
-                return;
-            }
-            Object attrX = newData.getAttributesNames().get(actualX);
-            Object attrY = newData.getAttributesNames().get(actualY);
-            if (attrX instanceof Integer) {
-                attrX = ((Integer) attrX).doubleValue();
-            }
-            if (attrY instanceof Integer) {
-                attrY = ((Integer) attrY).doubleValue();
-            }
-            XYChart.Data<Double, Double> dataPoint = new XYChart.Data<>(
-                    (Double) attrX,
-                    (Double) attrY
-            );
-
-            dataPoint.setNode(ViewUtil.getForm(newData, new Rectangle(10, 10), controller));
-            if (!scatterChart.getData().isEmpty()) {
-                series4.getData().add(dataPoint);
-                series4.setName("indéfini");
-                scatterChart.getData().add(series4);
-            }
-            VBox vBox = ViewUtil.loadLegend();
-            controller.loadLegend(vBox);
-        } catch (Exception e) {
-            System.err.println("Erreur de mise à jour : " + e.getMessage());
-        }
-    }
 
     /**
      * Renvoie le contrôleur associé à cette vue.
      * @return contrôleur de la vue.
      */
     public DataStageController getController() {
-        return controller;
+        return (DataStageController) controller;
     }
 
     /**
diff --git a/src/main/java/fr/univlille/sae/classification/view/DataVisualizationView.java b/src/main/java/fr/univlille/sae/classification/view/DataVisualizationView.java
index c3ad5af65602dcf8a469e619d393a5955429e562..0ee1a0140fd6e25ea2dba391e677ffcafbe6679a 100644
--- a/src/main/java/fr/univlille/sae/classification/view/DataVisualizationView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/DataVisualizationView.java
@@ -1,6 +1,23 @@
 package fr.univlille.sae.classification.view;
 
+import fr.univlille.sae.classification.controller.DataStageController;
+import fr.univlille.sae.classification.controller.DataVisualizationController;
+import fr.univlille.sae.classification.controller.MainStageController;
+import fr.univlille.sae.classification.model.ClassificationModel;
+import fr.univlille.sae.classification.model.LoadableData;
+import fr.univlille.sae.classification.utils.Observable;
+import fr.univlille.sae.classification.utils.ViewUtil;
+import javafx.scene.Node;
 import javafx.scene.chart.ScatterChart;
+import javafx.scene.chart.XYChart;
+import javafx.scene.layout.HBox;
+import javafx.scene.layout.VBox;
+import javafx.scene.shape.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Classe abstraite représentant une vue de visualisation des données.
@@ -8,14 +25,27 @@ import javafx.scene.chart.ScatterChart;
  */
 public abstract class DataVisualizationView {
 
+    public DataVisualizationController controller;
+    private ScatterChart.Series series1;
+    private ScatterChart.Series series2;
+    private ScatterChart.Series series3;
+    private ScatterChart.Series series4;
     protected String actualX;
     protected String actualY;
     protected ScatterChart scatterChart;
 
+
+    private Map<String, ScatterChart.Series<Double, Double>> serieList;
+    public ClassificationModel model;
     /**
-     * Constructeur par défaut.
+     * Constructeur pour initialiser la vue de données.
+     * @param model le modèle de classification utilisé pour gérer les données.
      */
-    protected DataVisualizationView() {}
+    protected DataVisualizationView(ClassificationModel model) {
+        this.serieList = new HashMap<String, ScatterChart.Series<Double, Double>>();
+        this.model = model;
+        this.series4 = new XYChart.Series();
+    }
 
     /**
      * Renvoie le nom de l'axe X actuel.
@@ -61,4 +91,137 @@ public abstract class DataVisualizationView {
      * Méthode abstraite à implémenter pour recharger les données de la vue.
      */
     public abstract void reload();
+
+
+    /**
+     * Met à jour l'affichage des données en fonction des changements dans le modèle.
+     * @param observable modèle observé.
+     */
+    public void update(Observable observable) {
+        try {
+            if (scatterChart == null || !(observable instanceof ClassificationModel)) {
+                System.err.println("Erreur de mise à jour.");
+                return;
+            }
+
+            scatterChart.getData().clear();
+            serieList.clear();
+
+            if (actualX == null && actualY == null) {
+                controller.setAxesSelected("Aucuns axes sélectionnés");
+            } else {
+                controller.setAxesSelected("");
+                controller.setAxesSelectedDisable();
+
+                List<LoadableData> points = new ArrayList<>(model.getDatas());
+                points.addAll(model.getDataToClass().keySet());
+                for (LoadableData data : points) {
+                    Object xValue = data.getAttributesNames().get(actualX);
+                    Object yValue = data.getAttributesNames().get(actualY);
+
+
+
+                    double x = 0;
+                    if(xValue instanceof Number) {
+                        x = ((Number) xValue).doubleValue();
+                    }
+                    double y = 0;
+                    if(yValue instanceof Number) {
+                        y = ((Number) yValue).doubleValue();
+                    }
+                    /**
+                     Double x = 0.0;
+                     if (xValue instanceof Integer) {
+                     x = ((Integer) xValue).doubleValue();
+                     } else if (xValue instanceof Double) {
+                     x = (Double) xValue;
+                     }
+
+                     Double y = 0.0;
+                     if (yValue instanceof Integer) {
+                     y = ((Integer) yValue).doubleValue();
+                     } else if (yValue instanceof Double) {
+                     y = (Double) yValue;
+                     }
+                     **/
+                    ScatterChart.Data<Double, Double> dataPoint = new ScatterChart.Data<>(x, y);
+
+                    Node nodePoint = ViewUtil.getForm(data, new Circle(5), controller);
+
+                    ScatterChart.Series<Double, Double> editSerie = serieList.get(data.getClassification());
+                    if(editSerie == null){
+                        editSerie = new ScatterChart.Series<Double, Double>();
+                    }
+                    if(data.getClassification().equals("undefined") || model.getDataToClass().containsKey(data)) {
+                        nodePoint = ViewUtil.getForm(data, new Rectangle(10,10), controller);
+                    }
+
+                    dataPoint.setNode(nodePoint);
+                    editSerie.getData().add(dataPoint);
+                    serieList.put(data.getClassification(), editSerie);
+                }
+
+                for(String serie : serieList.keySet()) {
+                    serieList.get(serie).setName(serie);
+                }
+                scatterChart.getData().addAll(serieList.values());
+
+
+                VBox vBox = ViewUtil.loadLegend();
+                controller.loadLegend(vBox);
+            }
+
+
+        } catch (Exception e) {
+            System.err.println("Erreur de mise à jour : " + e.getMessage());
+        }
+    }
+
+    /**
+     * Met à jour l'affichage en ajoutant un nouveau point de données.
+     * @param observable modèle observé.
+     * @param data point de données à ajouter.
+     */
+    public void update(Observable observable, Object data) {
+        try {
+            if (scatterChart == null || !(observable instanceof ClassificationModel)) {
+                System.err.println("Erreur de mise à jour.");
+                return;
+            }
+
+
+
+            LoadableData newData = (LoadableData) data;
+            if (actualX == null || actualY == null) {
+                controller.setAxesSelected("Aucuns axes sélectionnés");
+                return;
+            }
+            Object attrX = newData.getAttributesNames().get(actualX);
+            Object attrY = newData.getAttributesNames().get(actualY);
+            if (attrX instanceof Integer) {
+                attrX = ((Integer) attrX).doubleValue();
+            }
+            if (attrY instanceof Integer) {
+                attrY = ((Integer) attrY).doubleValue();
+            }
+            XYChart.Data<Double, Double> dataPoint = new XYChart.Data<>(
+                    (Double) attrX,
+                    (Double) attrY
+            );
+
+            dataPoint.setNode(ViewUtil.getForm(newData, new Rectangle(10, 10), controller));
+            if (!scatterChart.getData().isEmpty()) {
+                series4.getData().add(dataPoint);
+                series4.setName("indéfini");
+                scatterChart.getData().add(series4);
+            }
+
+
+            controller.loadLegend(ViewUtil.loadLegend());
+        } catch (Exception e) {
+            System.err.println("Erreur de mise à jour : " + e.getMessage());
+        }
+    }
+
+
 }
diff --git a/src/main/java/fr/univlille/sae/classification/view/KNNView.java b/src/main/java/fr/univlille/sae/classification/view/KNNView.java
index 31cd2982be04ff01e20ba30e7d61a17a087b39d2..5df40577e89bfd2bda585d59c9f94ab00fe2e2cb 100644
--- a/src/main/java/fr/univlille/sae/classification/view/KNNView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/KNNView.java
@@ -26,6 +26,9 @@ public class KNNView {
         this.owner = owner;
     }
 
+    /**
+     *
+     */
     public void show() {
         FXMLLoader loader = new FXMLLoader();
         URL fxmlFileUrl = getClass().getClassLoader().getResource("stages"+ File.separator+"k-NN-stage.fxml");
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 ad6aff4484f05d5f81889b3c0fc7c654e9bfe22e..36661733bc711b9951119c79df26b58938cdbedb 100644
--- a/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
@@ -27,12 +27,9 @@ import java.util.*;
  */
 public class MainStageView extends DataVisualizationView implements Observer {
 
-    private ClassificationModel model;
-    private MainStageController controller;
 
     private Stage root;
 
-    private Map<String, ScatterChart.Series<Double, Double>> serieList;
 
     private ScatterChart.Series series1;
     private ScatterChart.Series series2;
@@ -41,16 +38,17 @@ public class MainStageView extends DataVisualizationView implements Observer {
 
     /**
      * Constructeur de la vue principale.
+     *
      * @param model modèle de classification à utiliser.
      */
     public MainStageView(ClassificationModel model) {
-        super();
-        this.serieList = new HashMap<String, ScatterChart.Series<Double, Double>>();
+        super(model);
+
         this.series1 = new ScatterChart.Series();
         this.series2 = new ScatterChart.Series();
         this.series3 = new ScatterChart.Series();
         this.series4 = new ScatterChart.Series();
-        this.model = model;
+
         model.attach(this);
     }
 
@@ -88,8 +86,10 @@ public class MainStageView extends DataVisualizationView implements Observer {
                 }
             });
 
+
+            controller = (MainStageController) controller;
             controller = loader.getController();
-            controller.setMainStageView(this);
+            ((MainStageController) controller).setMainStageView(this);
             scatterChart = controller.getScatterChart();
             //scatterChart.getData().addAll(series1, series2, series3, series4);
             controller.setAxesSelected("Aucun fichier sélectionné");
@@ -99,135 +99,23 @@ public class MainStageView extends DataVisualizationView implements Observer {
         }
     }
 
-    @Override
-    public void update(Observable observable) {
-        try {
-            if (scatterChart == null || !(observable instanceof ClassificationModel)) {
-                System.err.println("Erreur de mise à jour.");
-                return;
-            }
-
-            scatterChart.getData().clear();
-            serieList.clear();
-
-            if (actualX == null && actualY == null) {
-                controller.setAxesSelected("Aucuns axes sélectionnés");
-            } else {
-                controller.setAxesSelected("");
-                controller.setAxesSelectedDisable();
-
-                List<LoadableData> points = new ArrayList<>(model.getDatas());
-                points.addAll(model.getDataToClass().keySet());
-                for (LoadableData data : points) {
-                    Object xValue = data.getAttributesNames().get(actualX);
-                    Object yValue = data.getAttributesNames().get(actualY);
-
-
-
-                    double x = 0;
-                    if(xValue instanceof Number) {
-                        x = ((Number) xValue).doubleValue();
-                    }
-                    double y = 0;
-                    if(yValue instanceof Number) {
-                        y = ((Number) yValue).doubleValue();
-                    }
-                    /**
-                    Double x = 0.0;
-                    if (xValue instanceof Integer) {
-                        x = ((Integer) xValue).doubleValue();
-                    } else if (xValue instanceof Double) {
-                        x = (Double) xValue;
-                    }
-
-                    Double y = 0.0;
-                    if (yValue instanceof Integer) {
-                        y = ((Integer) yValue).doubleValue();
-                    } else if (yValue instanceof Double) {
-                        y = (Double) yValue;
-                    }
-                    **/
-                    ScatterChart.Data<Double, Double> dataPoint = new ScatterChart.Data<>(x, y);
-
-                    Node nodePoint = ViewUtil.getForm(data, new Circle(5), controller);
-
-                    ScatterChart.Series<Double, Double> editSerie = serieList.get(data.getClassification());
-                    if(editSerie == null){
-                        editSerie = new ScatterChart.Series<Double, Double>();
-                    }
-                    if(data.getClassification().equals("undefined") || model.getDataToClass().containsKey(data)) {
-                        nodePoint = ViewUtil.getForm(data, new Rectangle(10,10), controller);
-                    }
-
-                    dataPoint.setNode(nodePoint);
-                    editSerie.getData().add(dataPoint);
-                    serieList.put(data.getClassification(), editSerie);
-                }
-
-                for(String serie : serieList.keySet()) {
-                    serieList.get(serie).setName(serie);
-                }
-                scatterChart.getData().addAll(serieList.values());
-
-
-                VBox vBox = ViewUtil.loadLegend();
-                controller.loadLegend(vBox);
-            }
-
-
-        } catch (Exception e) {
-            System.err.println("Erreur de mise à jour : " + e.getMessage());
-        }
-    }
-
-    @Override
-    public void update(Observable observable, Object data) {
-        try {
-            if (scatterChart == null || !(observable instanceof ClassificationModel)) {
-                System.err.println("Erreur de mise à jour.");
-                return;
-            }
-
-
-
-            LoadableData newData = (LoadableData) data;
-            if (actualX == null || actualY == null) {
-                controller.setAxesSelected("Aucuns axes sélectionnés");
-                return;
-            }
-            Object attrX = newData.getAttributesNames().get(actualX);
-            Object attrY = newData.getAttributesNames().get(actualY);
-            if (attrX instanceof Integer) {
-                attrX = ((Integer) attrX).doubleValue();
-            }
-            if (attrY instanceof Integer) {
-                attrY = ((Integer) attrY).doubleValue();
-            }
-            XYChart.Data<Double, Double> dataPoint = new XYChart.Data<>(
-                    (Double) attrX,
-                    (Double) attrY
-            );
-
-            dataPoint.setNode(ViewUtil.getForm(newData, new Rectangle(10, 10), controller));
-            if (!scatterChart.getData().isEmpty()) {
-                series4.getData().add(dataPoint);
-                series4.setName("indéfini");
-                scatterChart.getData().add(series4);
-            }
-
-
-            controller.loadLegend(ViewUtil.loadLegend());
-        } catch (Exception e) {
-            System.err.println("Erreur de mise à jour : " + e.getMessage());
-        }
-    }
 
+    /**
+     * Retourne le contrôleur principal de la scène.
+     *
+     * @return le contrôleur principal de la scène en tant qu'instance.
+     */
     public MainStageController getController() {
-        return controller;
+        return (MainStageController) controller;
     }
 
+    /**
+     * Recharge les données nécessaires à partir du modèle de classification.
+     * Cette méthode met à jour l'état en fonction des données actuelles
+     */
     @Override
     public void reload() {
         this.update(ClassificationModel.getClassificationModel());
     }
 }
+