From 55af0193ccd3c9bcec51c8cc549d26bcb092cbaf Mon Sep 17 00:00:00 2001
From: Hugo Desmons <hugo.desmons.etu@univ-lille.fr>
Date: Fri, 29 Nov 2024 10:08:21 +0100
Subject: [PATCH] Refacto
---
.../classification/view/DataStageView.java | 122 +---------------
.../view/DataVisualizationView.java | 112 +++++++++++++--
.../classification/view/MainStageView.java | 131 +-----------------
3 files changed, 112 insertions(+), 253 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 f14feab..cad5bfb 100644
--- a/src/main/java/fr/univlille/sae/classification/view/DataStageView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/DataStageView.java
@@ -32,10 +32,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;
@@ -49,9 +49,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();
@@ -93,118 +93,6 @@ 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());
-
- HBox hBox = ViewUtil.loadLegend();
- controller.loadLegend(hBox);
- }
- } 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);
- }
- HBox hBox = ViewUtil.loadLegend();
- controller.loadLegend(hBox);
- } catch (Exception e) {
- System.err.println("Erreur de mise à jour : " + e.getMessage());
- }
- }
/**
* Renvoie le contrôleur associé à cette vue.
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 3fdc455..ecb717c 100644
--- a/src/main/java/fr/univlille/sae/classification/view/DataVisualizationView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/DataVisualizationView.java
@@ -5,10 +5,17 @@ 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.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.
* Elle gère les axes actuels et le graphique de dispersion.
@@ -23,10 +30,16 @@ public abstract class DataVisualizationView {
protected String actualY;
protected ScatterChart scatterChart;
private MainStageController controller;
+
+ private Map<String, ScatterChart.Series<Double, Double>> serieList;
+ public ClassificationModel model;
/**
* Constructeur par défaut.
*/
- protected DataVisualizationView() {}
+ protected DataVisualizationView(ClassificationModel model) {
+ this.serieList = new HashMap<String, ScatterChart.Series<Double, Double>>();
+ this.model = model;
+ }
/**
* Renvoie le nom de l'axe X actuel.
@@ -74,17 +87,97 @@ public abstract class DataVisualizationView {
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) {
+ 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());
+
+
+ HBox hBox = ViewUtil.loadLegend();
+ controller.loadLegend(hBox);
+ }
+
+
+ } catch (Exception e) {
+ System.err.println("Erreur de mise à jour : " + e.getMessage());
+ }
+ }
+
+
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");
@@ -104,15 +197,14 @@ public abstract class DataVisualizationView {
);
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);
}
+
+
+ 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/MainStageView.java b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
index 39d6cb9..91ea447 100644
--- a/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
@@ -26,12 +26,12 @@ 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;
@@ -43,13 +43,13 @@ public class MainStageView extends DataVisualizationView implements Observer {
* @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);
}
@@ -98,128 +98,7 @@ 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());
-
-
- HBox hBox = ViewUtil.loadLegend();
- controller.loadLegend(hBox);
- }
-
-
- } 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());
- }
- }
public MainStageController getController() {
return controller;
--
GitLab