From fd05f394594a2518313a39668a84132f31814373 Mon Sep 17 00:00:00 2001 From: Matisse DEKEISER <matisse.dekeiser.etu@univ-lille.fr> Date: Thu, 24 Oct 2024 17:46:15 +0200 Subject: [PATCH] Added data visualization in multiview --- .../controller/AxesSettingsController.java | 22 ++++++------- .../classification/view/AxesSettingsView.java | 15 +++------ .../classification/view/DataStageView.java | 30 ++++++----------- .../view/DataVisualizationView.java | 32 +++++++++++++++++++ .../classification/view/MainStageView.java | 25 +++------------ 5 files changed, 62 insertions(+), 62 deletions(-) create mode 100644 src/main/java/fr/univlille/sae/classification/view/DataVisualizationView.java diff --git a/src/main/java/fr/univlille/sae/classification/controller/AxesSettingsController.java b/src/main/java/fr/univlille/sae/classification/controller/AxesSettingsController.java index 8c890f2..16c52b1 100644 --- a/src/main/java/fr/univlille/sae/classification/controller/AxesSettingsController.java +++ b/src/main/java/fr/univlille/sae/classification/controller/AxesSettingsController.java @@ -1,7 +1,7 @@ package fr.univlille.sae.classification.controller; import fr.univlille.sae.classification.model.ClassificationModel; -import fr.univlille.sae.classification.view.MainStageView; +import fr.univlille.sae.classification.view.DataVisualizationView; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.ChoiceBox; @@ -21,31 +21,31 @@ public class AxesSettingsController{ @FXML Button confirmAxes; - MainStageView mainStageView; + DataVisualizationView dataVisualizationView; public void setSelectOrd(String[] fields){ selectOrd.getItems().clear(); selectOrd.getItems().addAll(fields); - selectOrd.setValue(mainStageView.getActualY()); + selectOrd.setValue(dataVisualizationView.getActualY()); } public void setSelectAbs(String[] fields){ selectAbs.getItems().clear(); selectAbs.getItems().addAll(fields); - selectAbs.setValue(mainStageView.getActualX()); + selectAbs.setValue(dataVisualizationView.getActualX()); } - public void setMainStageView(MainStageView mainStageView) { - this.mainStageView = mainStageView; + public void setdataVisualizationView(DataVisualizationView dataVisualizationView) { + this.dataVisualizationView = dataVisualizationView; } public void validate(){ - mainStageView.setActualX(selectAbs.getValue().toString()); - mainStageView.setActualY(selectOrd.getValue().toString()); - mainStageView.getController().getScatterChart().getXAxis().setLabel(mainStageView.getActualX()); - mainStageView.getController().getScatterChart().getYAxis().setLabel(mainStageView.getActualY()); + dataVisualizationView.setActualX(selectAbs.getValue().toString()); + dataVisualizationView.setActualY(selectOrd.getValue().toString()); + dataVisualizationView.getScatterChart().getXAxis().setLabel(dataVisualizationView.getActualX()); + dataVisualizationView.getScatterChart().getYAxis().setLabel(dataVisualizationView.getActualY()); - mainStageView.update(ClassificationModel.getClassificationModel()); + dataVisualizationView.reload(); stage.close(); } } diff --git a/src/main/java/fr/univlille/sae/classification/view/AxesSettingsView.java b/src/main/java/fr/univlille/sae/classification/view/AxesSettingsView.java index 8f959e2..2a1f234 100644 --- a/src/main/java/fr/univlille/sae/classification/view/AxesSettingsView.java +++ b/src/main/java/fr/univlille/sae/classification/view/AxesSettingsView.java @@ -20,19 +20,12 @@ public class AxesSettingsView { private ClassificationModel model; private Stage owner; - private MainStageView mainStageView; - private DataStageView dataStageView; + private DataVisualizationView dataVisualizationView; - public AxesSettingsView(ClassificationModel model, Stage owner, MainStageView mainStageView){ + public AxesSettingsView(ClassificationModel model, Stage owner, DataVisualizationView dataVisualizationView){ this.model = model; this.owner = owner; - this.mainStageView = mainStageView; - } - - public AxesSettingsView(ClassificationModel model, Stage owner, DataStageView dataStageView) { - this.model = model; - this.owner = owner; - this.dataStageView = dataStageView; + this.dataVisualizationView = dataVisualizationView; } public void show() throws IOException { @@ -53,7 +46,7 @@ public class AxesSettingsView { root.setTitle("Configuration des axes"); AxesSettingsController controller = loader.getController(); - controller.setMainStageView(mainStageView); + controller.setdataVisualizationView(dataVisualizationView); if(model.getDatas().isEmpty()) { Alert alert = new Alert(Alert.AlertType.WARNING); 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 3362f0c..2cf2f84 100644 --- a/src/main/java/fr/univlille/sae/classification/view/DataStageView.java +++ b/src/main/java/fr/univlille/sae/classification/view/DataStageView.java @@ -22,14 +22,11 @@ import java.net.URL; import java.util.ArrayList; import java.util.List; -public class DataStageView implements Observer { +public class DataStageView extends DataVisualizationView implements Observer { private ClassificationModel model; - private ScatterChart scatterChart; private DataStageController controller; - private String actualX; - private String actualY; private Stage root; public DataStageView(ClassificationModel model) { @@ -56,6 +53,10 @@ public class DataStageView implements Observer { controller.setDataStageView(this); scatterChart = controller.getScatterChart(); controller.setAxesSelected("Aucun fichier sélectionné"); + + if (!model.getDatas().isEmpty()) { + update(model); + } } @Override @@ -137,23 +138,12 @@ public class DataStageView implements Observer { } } - public void setActualX(String actualX) { - this.actualX = actualX; - } - - public void setActualY(String actualY) { - this.actualY = actualY; - } - - public String getActualX() { - return actualX; - } - - public String getActualY() { - return actualY; - } - public DataStageController getController() { return controller; } + + @Override + public void reload() { + this.update(ClassificationModel.getClassificationModel()); + } } diff --git a/src/main/java/fr/univlille/sae/classification/view/DataVisualizationView.java b/src/main/java/fr/univlille/sae/classification/view/DataVisualizationView.java new file mode 100644 index 0000000..fd67573 --- /dev/null +++ b/src/main/java/fr/univlille/sae/classification/view/DataVisualizationView.java @@ -0,0 +1,32 @@ +package fr.univlille.sae.classification.view; + +import javafx.scene.chart.ScatterChart; + +public abstract class DataVisualizationView { + protected DataVisualizationView() {} + protected String actualX; + protected String actualY; + protected ScatterChart scatterChart; + + public String getActualX() { + return actualX; + } + + public void setActualX(String actualX) { + this.actualX = actualX; + } + + public String getActualY() { + return actualY; + } + + public void setActualY(String actualY) { + this.actualY = actualY; + } + + public ScatterChart getScatterChart() { + return this.scatterChart; + } + + public abstract void reload(); +} 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 9fe2d12..78545ee 100644 --- a/src/main/java/fr/univlille/sae/classification/view/MainStageView.java +++ b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java @@ -24,14 +24,11 @@ import java.io.IOException; import java.net.URL; import java.util.*; -public class MainStageView implements Observer { +public class MainStageView extends DataVisualizationView implements Observer { private ClassificationModel model; - private ScatterChart scatterChart; private MainStageController controller; - private String actualX; - private String actualY; private Stage root; public MainStageView(ClassificationModel model) { @@ -144,24 +141,12 @@ public class MainStageView implements Observer { } } - public void setActualX(String actualX) { - this.actualX = actualX; - } - - public void setActualY(String actualY) { - this.actualY = actualY; - } - - public String getActualX() { - return actualX; - } - - public String getActualY() { - return actualY; - } - public MainStageController getController() { return controller; } + @Override + public void reload() { + this.update(ClassificationModel.getClassificationModel()); + } } -- GitLab