From c7d4c0cb5eb00249646479d6fbb031dc3dfc4a14 Mon Sep 17 00:00:00 2001 From: Matias Mennecart <matias.mennecart.etu@univ-lille.fr> Date: Thu, 24 Oct 2024 09:58:23 +0200 Subject: [PATCH] Fix d'exceptions --- .../controller/AddDataController.java | 1 - .../controller/AxesSettingsController.java | 4 +++- .../controller/LoadDataController.java | 14 +++++++++----- .../sae/classification/view/AddDataView.java | 11 +++++++++++ .../sae/classification/view/AxesSettingsView.java | 13 ++++++++++++- .../sae/classification/view/MainStageView.java | 11 ++++------- 6 files changed, 39 insertions(+), 15 deletions(-) diff --git a/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java b/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java index 6bfce0f..fe5fd7a 100644 --- a/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java +++ b/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java @@ -57,7 +57,6 @@ public class AddDataController { public void validate() throws IOException { System.out.println("validé"); ClassificationModel.getClassificationModel().ajouterDonnee(sepalLengthSpinner.getValue(), sepalWidthSpinner.getValue(), petalLengthSpinner.getValue(), petalWidthSpinner.getValue()); - mainStageView.update(mainStageView.getModel(),new Iris(sepalWidthSpinner.getValue(),sepalLengthSpinner.getValue(),petalWidthSpinner.getValue(),petalLengthSpinner.getValue())); stage.close(); } 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 16cae7a..ed9dce6 100644 --- a/src/main/java/fr/univlille/sae/classification/controller/AxesSettingsController.java +++ b/src/main/java/fr/univlille/sae/classification/controller/AxesSettingsController.java @@ -1,5 +1,6 @@ package fr.univlille.sae.classification.controller; +import fr.univlille.sae.classification.model.ClassificationModel; import fr.univlille.sae.classification.view.MainStageView; import javafx.fxml.FXML; import javafx.scene.control.Button; @@ -41,7 +42,8 @@ public class AxesSettingsController{ public void validate(){ mainStageView.setActualX(selectAbs.getValue().toString()); mainStageView.setActualY(selectOrd.getValue().toString()); - mainStageView.update(mainStageView.getModel()); + + mainStageView.update(ClassificationModel.getClassificationModel()); stage.close(); } } diff --git a/src/main/java/fr/univlille/sae/classification/controller/LoadDataController.java b/src/main/java/fr/univlille/sae/classification/controller/LoadDataController.java index cf27808..902fb93 100644 --- a/src/main/java/fr/univlille/sae/classification/controller/LoadDataController.java +++ b/src/main/java/fr/univlille/sae/classification/controller/LoadDataController.java @@ -2,6 +2,7 @@ package fr.univlille.sae.classification.controller; import fr.univlille.sae.classification.model.ClassificationModel; import javafx.fxml.FXML; +import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; @@ -29,10 +30,6 @@ public class LoadDataController { File file; - public void loadData() { - System.out.println("Loading data"); - stage.close(); - } public void openFileChooser() { @@ -49,7 +46,14 @@ public class LoadDataController { public void validate() throws IOException { if (file == null) { - stage.close(); + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Erreur de chargement du fichier"); + alert.setHeaderText(null); + alert.initOwner(stage); + alert.setContentText("Le chargement du fichier à echoué, veuillez reessayer !"); + alert.showAndWait(); + openFileChooser(); + return; //throw exception } ClassificationModel.getClassificationModel().loadData(file); diff --git a/src/main/java/fr/univlille/sae/classification/view/AddDataView.java b/src/main/java/fr/univlille/sae/classification/view/AddDataView.java index 3519b8f..5ab2287 100644 --- a/src/main/java/fr/univlille/sae/classification/view/AddDataView.java +++ b/src/main/java/fr/univlille/sae/classification/view/AddDataView.java @@ -4,6 +4,7 @@ import fr.univlille.sae.classification.controller.AddDataController; import fr.univlille.sae.classification.controller.AxesSettingsController; import fr.univlille.sae.classification.model.ClassificationModel; import javafx.fxml.FXMLLoader; +import javafx.scene.control.Alert; import javafx.stage.Modality; import javafx.stage.Stage; @@ -41,6 +42,16 @@ public class AddDataView { controller.setMainStageView(mainStageView); + if(model.getDatas().isEmpty()) { + Alert alert = new Alert(Alert.AlertType.WARNING); + alert.setTitle("Erreur"); + alert.setHeaderText(null); + alert.setContentText("Veuillez d'abord charger les données avant pouvoir ajouter un point"); + alert.showAndWait(); + return; + } + + root.setResizable(false); root.initOwner(owner); root.initModality(Modality.APPLICATION_MODAL); 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 d5cc72f..48ca4ce 100644 --- a/src/main/java/fr/univlille/sae/classification/view/AxesSettingsView.java +++ b/src/main/java/fr/univlille/sae/classification/view/AxesSettingsView.java @@ -5,6 +5,7 @@ import fr.univlille.sae.classification.controller.MainStageController; import fr.univlille.sae.classification.model.ClassificationModel; import fr.univlille.sae.classification.model.LoadableData; import javafx.fxml.FXMLLoader; +import javafx.scene.control.Alert; import javafx.stage.Modality; import javafx.stage.Stage; @@ -43,9 +44,19 @@ public class AxesSettingsView { root.setTitle("Configuration des axes"); AxesSettingsController controller = loader.getController(); + controller.setMainStageView(mainStageView); + + if(model.getDatas().isEmpty()) { + Alert alert = new Alert(Alert.AlertType.WARNING); + alert.setTitle("Erreur"); + alert.setHeaderText(null); + alert.setContentText("Veuillez d'abord charger les données avant de modifier les parametres"); + alert.showAndWait(); + return; + } + LoadableData dataType = model.getDatas().get(0); - controller.setMainStageView(mainStageView); controller.setSelectAbs(dataType.getAttributesName()); controller.setSelectOrd(dataType.getAttributesName()); 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 c6ec0e9..fdf814f 100644 --- a/src/main/java/fr/univlille/sae/classification/view/MainStageView.java +++ b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java @@ -20,9 +20,7 @@ import javafx.stage.Stage; import java.io.File; import java.io.IOException; import java.net.URL; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; +import java.util.*; public class MainStageView implements Observer { @@ -75,7 +73,9 @@ public class MainStageView implements Observer { } else{ scatterChart.getData().add(series1); - for(LoadableData i : model.getDatas()) { + List<LoadableData> points = new ArrayList<>(model.getDatas()); + points.addAll(model.getDataToClass()); + for(LoadableData i : points) { Iris iris = (Iris)i; XYChart.Data<Double, Double> dataPoint = new XYChart.Data<>(iris.getDataType(actualX), iris.getDataType(actualY)); @@ -128,7 +128,4 @@ public class MainStageView implements Observer { return actualY; } - public Observable getModel() { - return this.model; - } } -- GitLab