From a8a96c3f49e56cbc1d3cbc5787da96a3922c9b91 Mon Sep 17 00:00:00 2001
From: Matias Mennecart <matias.mennecart.etu@univ-lille.fr>
Date: Thu, 24 Oct 2024 10:25:26 +0200
Subject: [PATCH] Ajouts classfication des points

---
 res/stages/main-stage.fxml                          |  2 +-
 .../controller/AddDataController.java               |  1 +
 .../controller/MainStageController.java             | 10 ++++++++++
 .../classification/model/ClassificationModel.java   |  7 ++++++-
 .../fr/univlille/sae/classification/model/Iris.java | 13 ++++++++++---
 .../sae/classification/model/LoadableData.java      | 11 ++++-------
 .../sae/classification/view/AddDataView.java        |  1 +
 .../sae/classification/view/MainStageView.java      |  4 ++++
 8 files changed, 37 insertions(+), 12 deletions(-)

diff --git a/res/stages/main-stage.fxml b/res/stages/main-stage.fxml
index 3032ca0..21c1941 100644
--- a/res/stages/main-stage.fxml
+++ b/res/stages/main-stage.fxml
@@ -56,7 +56,7 @@
                         <children>
                            <Button fx:id="loadData" mnemonicParsing="false" onAction="#openLoadData" prefHeight="27.0" prefWidth="185.0" text="Charger un jeu de données" />
                            <Button fx:id="addData" mnemonicParsing="false" onAction="#openAddData" prefHeight="26.0" prefWidth="141.0" text="Ajouter une donnée" />
-                           <Button fx:id="classifyData" disable="true" mnemonicParsing="false" prefHeight="26.0" prefWidth="157.0" text="Classifier une donnée" />
+                           <Button fx:id="classifyData" disable="true" mnemonicParsing="false"  onAction="#classifyDatas" prefHeight="26.0" prefWidth="157.0" text="Classifier les données" />
                         </children>
                      </HBox>
                   </children>
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 fe5fd7a..94cbf5a 100644
--- a/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java
+++ b/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java
@@ -56,6 +56,7 @@ public class AddDataController {
 
     public void validate() throws IOException {
         System.out.println("validé");
+        mainStageView.getController().getClassifyData().setDisable(false);
         ClassificationModel.getClassificationModel().ajouterDonnee(sepalLengthSpinner.getValue(), sepalWidthSpinner.getValue(), petalLengthSpinner.getValue(), petalWidthSpinner.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 2140845..02e4754 100644
--- a/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java
+++ b/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java
@@ -81,6 +81,12 @@ public class MainStageController {
     }
 
 
+
+    public void classifyDatas() {
+        ClassificationModel.getClassificationModel().classifierDonnees();
+    }
+
+
     public ScatterChart getScatterChart() {
         return this.scatterChart;
     }
@@ -88,4 +94,8 @@ public class MainStageController {
     public void setAxesSelected(String texte) {
         this.AxesSelected.setText(texte);
     }
+
+    public Button getClassifyData() {
+        return this.classifyData;
+    }
 }
diff --git a/src/main/java/fr/univlille/sae/classification/model/ClassificationModel.java b/src/main/java/fr/univlille/sae/classification/model/ClassificationModel.java
index b581562..73799df 100644
--- a/src/main/java/fr/univlille/sae/classification/model/ClassificationModel.java
+++ b/src/main/java/fr/univlille/sae/classification/model/ClassificationModel.java
@@ -75,11 +75,16 @@ public class ClassificationModel extends Observable {
         notifyObservers();
     }
 
+
+    public void classifierDonnees() {
+        dataToClass.forEach(this::classifierDonnee);
+    }
+
     /**
      * TODO
      * @param data
      */
-    public void classifierDonnee(LoadableData data) {
+    private void classifierDonnee(LoadableData data) {
 
         List<String> classes = new ArrayList<>(data.getClassificationTypes());
         Random rdm = new Random();
diff --git a/src/main/java/fr/univlille/sae/classification/model/Iris.java b/src/main/java/fr/univlille/sae/classification/model/Iris.java
index 5f6d3a7..38fee8a 100644
--- a/src/main/java/fr/univlille/sae/classification/model/Iris.java
+++ b/src/main/java/fr/univlille/sae/classification/model/Iris.java
@@ -26,6 +26,16 @@ public class Iris extends LoadableData{
         //
     }
 
+    @Override
+    public String getClassification() {
+        return variety;
+    }
+
+    @Override
+    public void setClassification(String classification) {
+        this.variety = classification;
+    }
+
     public Iris(double sepalWidth, double sepalLength, double petalWidth, double petalLength, String variety) {
         super();
         this.sepalWidth = sepalWidth;
@@ -51,9 +61,6 @@ public class Iris extends LoadableData{
         return petalLength;
     }
 
-                        public String getVariety() {
-        return variety;
-    }
 
     public double getDataType(String axes){
         switch (axes){
diff --git a/src/main/java/fr/univlille/sae/classification/model/LoadableData.java b/src/main/java/fr/univlille/sae/classification/model/LoadableData.java
index fba0fb7..033890f 100644
--- a/src/main/java/fr/univlille/sae/classification/model/LoadableData.java
+++ b/src/main/java/fr/univlille/sae/classification/model/LoadableData.java
@@ -6,7 +6,8 @@ public abstract class LoadableData {
 
     private static Set<String> classificationTypes;
 
-    private String classification;
+
+
 
     protected LoadableData() {
 
@@ -16,9 +17,7 @@ public abstract class LoadableData {
         this.classificationTypes.add(classificationType);
     }
 
-    public String getClassification() {
-        return this.classification;
-    }
+    public abstract String getClassification() ;
 
     public static Set<String> getClassificationTypes() {
         return classificationTypes;
@@ -28,9 +27,7 @@ public abstract class LoadableData {
         LoadableData.classificationTypes = classificationTypes;
     }
 
-    public void setClassification(String classification) {
-        this.classification = classification;
-    }
+    public abstract void setClassification(String classification);
 
     public abstract String[] getAttributesName();
 
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 5ab2287..f52b777 100644
--- a/src/main/java/fr/univlille/sae/classification/view/AddDataView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/AddDataView.java
@@ -42,6 +42,7 @@ public class AddDataView {
 
         controller.setMainStageView(mainStageView);
 
+
         if(model.getDatas().isEmpty()) {
             Alert alert = new Alert(Alert.AlertType.WARNING);
             alert.setTitle("Erreur");
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 fdf814f..177c991 100644
--- a/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
@@ -128,4 +128,8 @@ public class MainStageView implements Observer {
         return actualY;
     }
 
+    public MainStageController getController() {
+        return controller;
+    }
+
 }
-- 
GitLab