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 a8b0864644c24785dcb1d6db4133e2c663a48745..6bfce0f35edd54aefd17399072aa49f0bf7ba861 100644 --- a/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java +++ b/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java @@ -1,6 +1,8 @@ package fr.univlille.sae.classification.controller; import fr.univlille.sae.classification.model.ClassificationModel; +import fr.univlille.sae.classification.model.Iris; +import fr.univlille.sae.classification.view.MainStageView; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.Spinner; @@ -31,6 +33,8 @@ public class AddDataController { @FXML private Spinner<Double> petalWidthSpinner; + MainStageView mainStageView; + @FXML public void initialize() { sepalLengthSpinner.setValueFactory(new SpinnerValueFactory.DoubleSpinnerValueFactory(0.0, 200.0, 3.0,0.1)); @@ -44,23 +48,16 @@ public class AddDataController { petalLengthSpinner.setEditable(true); petalWidthSpinner.setEditable(true); - - confirmAdd.setOnAction(event -> handleConfirmAdd()); } - private void handleConfirmAdd() { - double sepalLength = sepalLengthSpinner.getValue(); - double sepalWidth = sepalWidthSpinner.getValue(); - double petalLength = petalLengthSpinner.getValue(); - double petalWidth = petalWidthSpinner.getValue(); - - stage.close(); + public void setMainStageView(MainStageView mainStageView) { + this.mainStageView = mainStageView; } 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/MainStageController.java b/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java index cacb8e322aa55ea5b07d520f258cb5c579631a34..21408450a73762a7f38a082592a4389dcae1da32 100644 --- a/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java +++ b/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java @@ -3,7 +3,6 @@ package fr.univlille.sae.classification.controller; import fr.univlille.sae.classification.model.ClassificationModel; import fr.univlille.sae.classification.view.AxesSettingsView; import fr.univlille.sae.classification.view.LoadDataView; -import fr.univlille.sae.classification.view.MainStageView; import fr.univlille.sae.classification.view.AddDataView; import fr.univlille.sae.classification.view.MainStageView; import javafx.fxml.FXML; @@ -75,9 +74,8 @@ public class MainStageController { */ public void openAddData() throws IOException { - AddDataView addDataView = new AddDataView(ClassificationModel.getClassificationModel(), stage); + AddDataView addDataView = new AddDataView(ClassificationModel.getClassificationModel(), stage, mainStageView); addDataView.show(); - } } 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 9d57add41e32b0d34ea7d74c15bb130ab009d32a..3519b8f09de62b6c2073c9c69f327264d52a9c26 100644 --- a/src/main/java/fr/univlille/sae/classification/view/AddDataView.java +++ b/src/main/java/fr/univlille/sae/classification/view/AddDataView.java @@ -1,5 +1,7 @@ package fr.univlille.sae.classification.view; +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.stage.Modality; @@ -13,10 +15,12 @@ public class AddDataView { private ClassificationModel model; private Stage owner; + private MainStageView mainStageView; - public AddDataView(ClassificationModel model, Stage owner) { + public AddDataView(ClassificationModel model, Stage owner, MainStageView mainStageView) { this.model = model; this.owner = owner; + this.mainStageView = mainStageView; } @@ -33,6 +37,10 @@ public class AddDataView { loader.setLocation(fxmlFileUrl); Stage root = loader.load(); + AddDataController controller = loader.getController(); + + controller.setMainStageView(mainStageView); + root.setResizable(false); root.initOwner(owner); root.initModality(Modality.APPLICATION_MODAL); 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 6a109423c1cd925a295d7bd69b742ad3ffd48614..c6ec0e9111813b611e88b298dad7b803cdc66984 100644 --- a/src/main/java/fr/univlille/sae/classification/view/MainStageView.java +++ b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java @@ -90,7 +90,26 @@ public class MainStageView implements Observer { @Override public void update(Observable observable, Object data) { - + if(scatterChart == null) throw new IllegalStateException(); + if(!(observable instanceof ClassificationModel)) throw new IllegalStateException(); + if(data instanceof Iris) { + Iris iris = (Iris) data; + if(actualX == null || actualY == null) { + controller.setAxesSelected("Aucuns axes sélectionnés"); + return; + } + XYChart.Data<Double, Double> dataPoint = new XYChart.Data<>( + iris.getDataType(actualX), + iris.getDataType(actualY) + ); + Circle circle = new Circle(5); + circle.setFill(iris.getColor()); + dataPoint.setNode(circle); + if (!scatterChart.getData().isEmpty()) { + XYChart.Series series = (XYChart.Series) scatterChart.getData().get(0); + series.getData().add(dataPoint); + } + } } public void setActualX(String actualX) {