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