From a7293d3ab7cb03a48b99e7c95227fc9da09b8ccd Mon Sep 17 00:00:00 2001
From: Matias Mennecart <matias.mennecart.etu@univ-lille.fr>
Date: Wed, 16 Oct 2024 14:43:35 +0200
Subject: [PATCH] Modification structure des views

---
 .../fr/univlille/sae/classification/Main.java | 31 +++++++++++++++++++
 .../model/ClassificationModel.java            | 11 ++++++-
 .../sae/classification/model/Iris.java        | 12 +------
 .../classification/model/LoadableData.java    | 19 ++++++++++--
 .../sae/classification/view/LoadDataView.java |  6 ++++
 .../{MainStage.java => MainStageView.java}    | 26 +++++++++++-----
 6 files changed, 83 insertions(+), 22 deletions(-)
 create mode 100644 src/main/java/fr/univlille/sae/classification/Main.java
 create mode 100644 src/main/java/fr/univlille/sae/classification/view/LoadDataView.java
 rename src/main/java/fr/univlille/sae/classification/view/{MainStage.java => MainStageView.java} (58%)

diff --git a/src/main/java/fr/univlille/sae/classification/Main.java b/src/main/java/fr/univlille/sae/classification/Main.java
new file mode 100644
index 0000000..77fa80b
--- /dev/null
+++ b/src/main/java/fr/univlille/sae/classification/Main.java
@@ -0,0 +1,31 @@
+package fr.univlille.sae.classification;
+
+import fr.univlille.sae.classification.model.ClassificationModel;
+import fr.univlille.sae.classification.view.MainStageView;
+import javafx.application.Application;
+import javafx.fxml.FXMLLoader;
+import javafx.stage.Stage;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+
+public class Main extends Application {
+
+
+    public void start(Stage stage) throws IOException {
+            ClassificationModel model = new ClassificationModel();
+            MainStageView view = new MainStageView(model);
+
+            view.show();
+    }
+
+    // Ouvre l'application
+    public static void main(String[] args) {
+        Application.launch(args);
+    }
+
+
+
+
+}
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 ca46239..1bfdec5 100644
--- a/src/main/java/fr/univlille/sae/classification/model/ClassificationModel.java
+++ b/src/main/java/fr/univlille/sae/classification/model/ClassificationModel.java
@@ -1,13 +1,18 @@
 package fr.univlille.sae.classification.model;
 
+import fr.univlille.sae.classification.utils.Observable;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Random;
+import java.util.Set;
 
-public class ClassificationModel {
+public class ClassificationModel extends Observable {
 
 
     private List<LoadableData> datas;
+    private List<LoadableData> dataToClass;
 
     public ClassificationModel() {
         this.datas = new ArrayList<>();
@@ -38,6 +43,10 @@ public class ClassificationModel {
      */
     private void classifierDonnee(LoadableData data) {
 
+        List<String> classes = new ArrayList<>(data.getClassificationTypes());
+        Random rdm = new Random();
+        data.setClassification(classes.get(rdm.nextInt(classes.size())));
+
     }
 
 
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 8693e90..b30835b 100644
--- a/src/main/java/fr/univlille/sae/classification/model/Iris.java
+++ b/src/main/java/fr/univlille/sae/classification/model/Iris.java
@@ -10,9 +10,7 @@ public class Iris extends LoadableData{
     private double petalWidth;
     private double petalLength;
 
-    private static Set<String> classificationTypes;
 
-    private String classification;
 
 
     public Iris(double sepalWidth, double sepalLength, double petalWidth, double petalLength) {
@@ -20,22 +18,14 @@ public class Iris extends LoadableData{
     }
 
     public Iris(double sepalWidth, double sepalLength, double petalWidth, double petalLength, String classification) {
+        super();
         this.sepalWidth = sepalWidth;
         this.sepalLength = sepalLength;
         this.petalWidth = petalWidth;
         this.petalLength = petalLength;
-        this.classification = classification;
     }
 
-    @Override
-    public String getClassification() {
-        return this.classification;
-    }
 
-    @Override
-    public Set<String> getClassificationTypes() {
-       return classificationTypes;
-    }
 
 
     public double getSepalWidth() {
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 c6fff31..4de0abe 100644
--- a/src/main/java/fr/univlille/sae/classification/model/LoadableData.java
+++ b/src/main/java/fr/univlille/sae/classification/model/LoadableData.java
@@ -2,11 +2,24 @@ package fr.univlille.sae.classification.model;
 
 import java.util.Set;
 
-public abstract class LoadableData {
+public class LoadableData {
 
-    public abstract String getClassification();
+    private static Set<String> classificationTypes;
 
-    public abstract Set<String> getClassificationTypes();
+    private String classification;
 
 
+    public LoadableData() {
+
+    }
+    public String getClassification() {
+        return this.classification;
+    }
+    Set<String> getClassificationTypes() {
+        return classificationTypes;
+    }
+    void setClassification(String classification) {
+        this.classification = classification;
+    }
+
 }
diff --git a/src/main/java/fr/univlille/sae/classification/view/LoadDataView.java b/src/main/java/fr/univlille/sae/classification/view/LoadDataView.java
new file mode 100644
index 0000000..2261807
--- /dev/null
+++ b/src/main/java/fr/univlille/sae/classification/view/LoadDataView.java
@@ -0,0 +1,6 @@
+package fr.univlille.sae.classification.view;
+
+public class LoadDataView {
+
+
+}
diff --git a/src/main/java/fr/univlille/sae/classification/view/MainStage.java b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
similarity index 58%
rename from src/main/java/fr/univlille/sae/classification/view/MainStage.java
rename to src/main/java/fr/univlille/sae/classification/view/MainStageView.java
index 350ba9a..159c463 100644
--- a/src/main/java/fr/univlille/sae/classification/view/MainStage.java
+++ b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
@@ -1,5 +1,8 @@
 package fr.univlille.sae.classification.view;
 
+import fr.univlille.sae.classification.model.ClassificationModel;
+import fr.univlille.sae.classification.utils.Observable;
+import fr.univlille.sae.classification.utils.Observer;
 import javafx.application.Application;
 import javafx.fxml.FXMLLoader;
 import javafx.stage.Stage;
@@ -8,10 +11,18 @@ import java.io.File;
 import java.io.IOException;
 import java.net.URL;
 
-public class MainStage extends Application {
+public class MainStageView implements Observer {
 
 
-    public void start(Stage stage) throws IOException {
+    private ClassificationModel model;
+
+    public MainStageView(ClassificationModel model) {
+        this.model = model;
+        model.attach(this);
+    }
+
+
+    public void show() throws IOException {
         FXMLLoader loader = new FXMLLoader();
 
         URL fxmlFileUrl = new File(System.getProperty("user.dir") + File.separator + "res" + File.separator + "stages" + File.separator + "main-stage.fxml").toURI().toURL();
@@ -25,15 +36,16 @@ public class MainStage extends Application {
         root.setResizable(false);
         root.setTitle("SAE3.3 - Logiciel de classification");
         root.show();
-
     }
 
-    // Ouvre l'application
-    public static void main(String[] args) {
-        Application.launch(args);
-    }
 
+    @Override
+    public void update(Observable observable) {
 
+    }
 
+    @Override
+    public void update(Observable observable, Object data) {
 
+    }
 }
-- 
GitLab