From e4e45f4824d1e605357b340429cc41208e5999f8 Mon Sep 17 00:00:00 2001
From: h2lh-dev <hugo.desmons59@gmail.com>
Date: Thu, 28 Nov 2024 20:35:26 +0100
Subject: [PATCH] ajout public void update(Observable observable, Object data)
dans la class abstraite DataVisualizationView
---
.../classification/view/DataStageView.java | 8 +--
.../view/DataVisualizationView.java | 60 ++++++++++++++++++-
2 files changed, 63 insertions(+), 5 deletions(-)
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 09a009f..9fce7cd 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 c3ad5af..3fdc455 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());
+ }
+ }
+
+
}
--
GitLab