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 09a009f95f0644abe3e560228d2cd04f0f543cfb..9fce7cd690c77acbb8ed635afbfd8e71d468b250 100644
--- a/src/main/java/fr/univlille/sae/classification/view/DataStageView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/DataStageView.java
@@ -36,10 +36,10 @@ public class DataStageView extends DataVisualizationView implements Observer {
private Map<String, ScatterChart.Series<Double, Double>> serieList;
- private XYChart.Series series1;
- private XYChart.Series series2;
- private XYChart.Series series3;
- private XYChart.Series series4;
+ private ScatterChart.Series series1;
+ private ScatterChart.Series series2;
+ private ScatterChart.Series series3;
+ private ScatterChart.Series series4;
private Stage root;
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..3fdc4552777055ad7c7f2eca8076b643e73bccfd 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,13 @@
package fr.univlille.sae.classification.view;
+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.chart.ScatterChart;
+import javafx.scene.chart.XYChart;
+import javafx.scene.shape.*;
/**
* Classe abstraite représentant une vue de visualisation des données.
@@ -8,10 +15,14 @@ import javafx.scene.chart.ScatterChart;
*/
public abstract class DataVisualizationView {
+ 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 MainStageController controller;
/**
* Constructeur par défaut.
*/
@@ -61,4 +72,51 @@ 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 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()) {
+ if (series4 == null) {
+ series4 = new ScatterChart.Series<>();
+ }
+ series4.getData().add(dataPoint);
+ series4.setName("indéfini");
+ scatterChart.getData().add(series4);
+ }
+ } catch (Exception e) {
+ System.err.println("Erreur de mise à jour : " + e.getMessage());
+ }
+ }
+
+
}