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