Skip to content
Snippets Groups Projects
Commit 1202d8c5 authored by Matias Mennecart's avatar Matias Mennecart
Browse files

Merge branch 'hugodebuyser' into 'master'

Changement de la méthode d'affichage des points sur le graphe et sur les nouveaux points

See merge request sae302/2024/H4_SAE3.3!14
parents 603ecc1a ffa50314
No related branches found
No related tags found
No related merge requests found
...@@ -62,7 +62,6 @@ public class Iris extends LoadableData{ ...@@ -62,7 +62,6 @@ public class Iris extends LoadableData{
return petalLength; return petalLength;
} }
public double getDataType(String axes){ public double getDataType(String axes){
switch (axes){ switch (axes){
case "sepalWidth": case "sepalWidth":
......
...@@ -17,6 +17,8 @@ import javafx.scene.control.ContextMenu; ...@@ -17,6 +17,8 @@ import javafx.scene.control.ContextMenu;
import javafx.scene.control.MenuItem; import javafx.scene.control.MenuItem;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import javafx.scene.shape.Circle; import javafx.scene.shape.Circle;
import javafx.scene.shape.Rectangle;
import javafx.scene.shape.Shape;
import javafx.stage.Stage; import javafx.stage.Stage;
import java.io.File; import java.io.File;
...@@ -64,11 +66,13 @@ public class MainStageView extends DataVisualizationView implements Observer { ...@@ -64,11 +66,13 @@ public class MainStageView extends DataVisualizationView implements Observer {
public void update(Observable observable) { public void update(Observable observable) {
if(scatterChart == null) throw new IllegalStateException(); if(scatterChart == null) throw new IllegalStateException();
if(!(observable instanceof ClassificationModel)) throw new IllegalStateException(); if(!(observable instanceof ClassificationModel)) throw new IllegalStateException();
//on vide le nuage pour s'assurer que celui-ci est bien vide
scatterChart.getData().clear(); scatterChart.getData().clear();
XYChart.Series series1 = new XYChart.Series(); XYChart.Series series1 = new XYChart.Series();
series1.setName("Iris"); XYChart.Series series2 = new XYChart.Series();
XYChart.Series series3 = new XYChart.Series();
//Jalon 1: on verifie que le type de donnée est bien IRIS //Jalon 1: on verifie que le type de donnée est bien IRIS
if(model.getType() == DataType.IRIS) { if(model.getType() == DataType.IRIS) {
...@@ -79,33 +83,39 @@ public class MainStageView extends DataVisualizationView implements Observer { ...@@ -79,33 +83,39 @@ public class MainStageView extends DataVisualizationView implements Observer {
} }
else{ else{
controller.setAxesSelected(""); controller.setAxesSelected("");
// On ajoute la serie au nuage
scatterChart.getData().add(series1);
//On recupere les données du model
List<LoadableData> points = new ArrayList<>(model.getDatas()); List<LoadableData> points = new ArrayList<>(model.getDatas());
points.addAll(model.getDataToClass()); points.addAll(model.getDataToClass());
// on ajoute chaque point a la serie
for(LoadableData i : points) { for(LoadableData i : points) {
Iris iris = (Iris)i; Iris iris = (Iris)i;
XYChart.Data<Double, Double> dataPoint = new XYChart.Data<>(iris.getDataType(actualX), XYChart.Data<Double, Double> dataPoint = new XYChart.Data<>(iris.getDataType(actualX),
iris.getDataType(actualY)); iris.getDataType(actualY));
dataPoint.setNode(getCircle(iris)); dataPoint.setNode(getForm(iris, new Circle(5)));
series1.getData().add(dataPoint); if(iris.getClassification().equals("Setosa")){
series1.getData().add(dataPoint);
}else if(iris.getClassification().equals("Versicolor")){
series2.getData().add(dataPoint);
}else if(iris.getClassification().equals("Virginica")){
series3.getData().add(dataPoint);
}
} }
series1.setName("Setosa");
series2.setName("Versicolor");
series3.setName("Virginica");
scatterChart.getData().addAll(series1, series2, series3);
} }
} }
} }
private Shape getForm(Iris iris, Shape form) {
private Circle getCircle(Iris iris) { form.setFill(iris.getColor());
Circle circle = new Circle(5); form.setOnMouseClicked(e -> {
circle.setFill(iris.getColor());
circle.setOnMouseClicked(e -> {
ContextMenu contextMenu = new ContextMenu(); ContextMenu contextMenu = new ContextMenu();
for(String attributes : iris.getAttributesName()) { for(String attributes : iris.getAttributesName()) {
contextMenu.getItems().add(new MenuItem(attributes + " : " + iris.getDataType(attributes))); contextMenu.getItems().add(new MenuItem(attributes + " : " + iris.getDataType(attributes)));
...@@ -113,7 +123,7 @@ public class MainStageView extends DataVisualizationView implements Observer { ...@@ -113,7 +123,7 @@ public class MainStageView extends DataVisualizationView implements Observer {
contextMenu.show(root, e.getScreenX(), e.getScreenY()); contextMenu.show(root, e.getScreenX(), e.getScreenY());
}); });
return circle; return form;
} }
...@@ -133,7 +143,7 @@ public class MainStageView extends DataVisualizationView implements Observer { ...@@ -133,7 +143,7 @@ public class MainStageView extends DataVisualizationView implements Observer {
iris.getDataType(actualY) iris.getDataType(actualY)
); );
dataPoint.setNode(getCircle(iris)); dataPoint.setNode(getForm(iris, new Rectangle(10, 10)));
if (!scatterChart.getData().isEmpty()) { if (!scatterChart.getData().isEmpty()) {
XYChart.Series series = (XYChart.Series) scatterChart.getData().get(0); XYChart.Series series = (XYChart.Series) scatterChart.getData().get(0);
series.getData().add(dataPoint); series.getData().add(dataPoint);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment