From fed31c7917e4bf1b83fa452c74856ecc9aac485a Mon Sep 17 00:00:00 2001 From: alice frezza Date: Thu, 7 Apr 2022 16:10:46 +0200 Subject: [PATCH] made diagrams abstract --- .../java/it/unibz/videotaxi/LogReader.java | 1 - .../java/it/unibz/videotaxi/TryProgram.java | 27 ++--- .../it/unibz/videotaxi/diagrams/Diagram.java | 36 ++++++- .../videotaxi/diagrams/Diagram_barChart.java | 58 ++++++---- .../videotaxi/diagrams/Diagram_pieChart.java | 34 +++--- .../videotaxi/diagrams/Diagram_timeLine.java | 101 +++++++----------- 6 files changed, 134 insertions(+), 123 deletions(-) diff --git a/src/main/java/it/unibz/videotaxi/LogReader.java b/src/main/java/it/unibz/videotaxi/LogReader.java index 76774c4..580c551 100644 --- a/src/main/java/it/unibz/videotaxi/LogReader.java +++ b/src/main/java/it/unibz/videotaxi/LogReader.java @@ -72,7 +72,6 @@ public class LogReader { timeStampBuffer.put(timeStamp,buffer); } } - return timeStampBuffer; } diff --git a/src/main/java/it/unibz/videotaxi/TryProgram.java b/src/main/java/it/unibz/videotaxi/TryProgram.java index c67c966..45c9e97 100644 --- a/src/main/java/it/unibz/videotaxi/TryProgram.java +++ b/src/main/java/it/unibz/videotaxi/TryProgram.java @@ -1,16 +1,10 @@ package it.unibz.videotaxi; -import it.unibz.videotaxi.diagrams.Diagram; import it.unibz.videotaxi.diagrams.Diagram_barChart; -import it.unibz.videotaxi.diagrams.Diagram_timeLine; import javafx.application.Application; -import javafx.fxml.FXMLLoader; -import javafx.scene.Scene; -import javafx.scene.chart.BarChart; import javafx.stage.Stage; -import jdk.jshell.Diag; - import java.io.IOException; +import java.util.Map; public class TryProgram extends Application { @@ -18,14 +12,21 @@ public class TryProgram extends Application { launch(args); } + //EXAMPLE @Override - public void start(Stage stage) throws IOException { - Diagram diagram = new Diagram_barChart(); - diagram.setLogReader("C:\\Users\\alice\\OneDrive\\Desktop\\challenge_video.taxi\\src\\main\\resources\\example-livesub.log"); - BarChart bc = diagram.returnStage(); - Scene scene = new Scene(bc,800,600); - stage.setScene(scene); + public void start(Stage stage){ + + LogReader logReader = new LogReader("src/main/resources/example-livesub.log"); + Map mapCategory = logReader.getCategory(); + + Diagram_barChart diagram = new Diagram_barChart("Event Category", + "Category", + mapCategory); + diagram.setxLabel("Category"); + diagram.setyLabel("Amount"); + stage = diagram.returnStage(); stage.show(); + } } \ No newline at end of file diff --git a/src/main/java/it/unibz/videotaxi/diagrams/Diagram.java b/src/main/java/it/unibz/videotaxi/diagrams/Diagram.java index bd6e8a4..af556d4 100644 --- a/src/main/java/it/unibz/videotaxi/diagrams/Diagram.java +++ b/src/main/java/it/unibz/videotaxi/diagrams/Diagram.java @@ -1,11 +1,39 @@ package it.unibz.videotaxi.diagrams; - import it.unibz.videotaxi.LogReader; +import javafx.stage.Stage; + +import java.util.Map; + +public abstract class Diagram { + + Stage stage = new Stage(); + + private String namePane; + private String nameChart; + + public Diagram(String namePane, String nameChart) { + this.namePane = namePane; + this.nameChart = nameChart; + } + + abstract Stage returnStage(); + + /* GETTER AND SETTERS */ + + public String getNamePane() { + return namePane; + } -public interface Diagram { + public void setNamePane(String namePane) { + this.namePane = namePane; + } - void setLogReader(String filePath); + public String getNameChart() { + return nameChart; + } - LogReader getLogReader(); + public void setNameChart(String nameChart) { + this.nameChart = nameChart; + } } diff --git a/src/main/java/it/unibz/videotaxi/diagrams/Diagram_barChart.java b/src/main/java/it/unibz/videotaxi/diagrams/Diagram_barChart.java index 23cd444..f634374 100644 --- a/src/main/java/it/unibz/videotaxi/diagrams/Diagram_barChart.java +++ b/src/main/java/it/unibz/videotaxi/diagrams/Diagram_barChart.java @@ -1,33 +1,38 @@ package it.unibz.videotaxi.diagrams; -import it.unibz.videotaxi.LogReader; -import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.chart.BarChart; import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; import javafx.stage.Stage; + import java.util.Map; -public class Diagram_barChart implements Diagram { +public class Diagram_barChart extends Diagram { - private LogReader logReader; + public Diagram_barChart(String namePane, String nameChart, Map values) { + super(namePane, nameChart); + this.values = values; + } - public BarChart returnStage() { + private String xLabel; + private String yLabel; + Map values; - CategoryAxis xAxis = new CategoryAxis(); - xAxis.setLabel("Asse x"); - NumberAxis yAxis = new NumberAxis(); - yAxis.setLabel("Asse y"); + @Override + public Stage returnStage() { - final BarChart bc = new BarChart<>(xAxis, yAxis); + stage.setTitle(getNamePane()); + final CategoryAxis xAxis = new CategoryAxis(); + final NumberAxis yAxis = new NumberAxis(); + final BarChart bc = new BarChart<>(xAxis,yAxis); - Map mapCategory = getLogReader().getCategory(); + Map mapCategory = values; - bc.setTitle("Event Category"); - xAxis.setLabel("Category"); - yAxis.setLabel("Amount"); + bc.setTitle(getNameChart()); + xAxis.setLabel(xLabel); + yAxis.setLabel(yLabel); XYChart.Series series1 = new XYChart.Series(); @@ -36,18 +41,29 @@ public class Diagram_barChart implements Diagram { series1.getData().add(new XYChart.Data(entry.getKey(), entry.getValue())); } + Scene scene = new Scene(bc,800,600); bc.getData().addAll(series1); - return bc; + stage.setScene(scene); + + return stage; } - @Override - public void setLogReader(String filePath) { - logReader = new LogReader(filePath); + /* GETTER AND SETTERS*/ + + public String getxLabel() { + return xLabel; } - @Override - public LogReader getLogReader() { - return logReader; + public void setxLabel(String xLabel) { + this.xLabel = xLabel; + } + + public String getyLabel() { + return yLabel; + } + + public void setyLabel(String yLabel) { + this.yLabel = yLabel; } } \ No newline at end of file diff --git a/src/main/java/it/unibz/videotaxi/diagrams/Diagram_pieChart.java b/src/main/java/it/unibz/videotaxi/diagrams/Diagram_pieChart.java index 3d8d94a..0cd5098 100644 --- a/src/main/java/it/unibz/videotaxi/diagrams/Diagram_pieChart.java +++ b/src/main/java/it/unibz/videotaxi/diagrams/Diagram_pieChart.java @@ -1,7 +1,6 @@ package it.unibz.videotaxi.diagrams; import it.unibz.videotaxi.LogReader; -import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.Scene; @@ -10,18 +9,24 @@ import javafx.scene.chart.*; import javafx.scene.Group; import java.util.Map; -public class Diagram_pieChart extends Application implements Diagram { +public class Diagram_pieChart extends Diagram { - private LogReader logReader; + public Diagram_pieChart(String namePane, String nameChart, Map values) { + super(namePane, nameChart); + this.values = values; + } + + private Map values; - @Override public void start(Stage stage) { + @Override + public Stage returnStage (){ Scene scene = new Scene(new Group()); - stage.setTitle("Event category"); + stage.setTitle(getNamePane()); stage.setWidth(500); stage.setHeight(500); - Map mapEvents = getLogReader().getCategory(); + Map mapEvents = values; ObservableList pieChartEvents = FXCollections.observableArrayList(); @@ -31,24 +36,11 @@ public class Diagram_pieChart extends Application implements Diagram { } final PieChart chart = new PieChart(pieChartEvents); - chart.setTitle("Event category"); + chart.setTitle(getNameChart()); ((Group) scene.getRoot()).getChildren().add(chart); stage.setScene(scene); - stage.show(); - } - - public static void main(String[] args) { - launch(args); + return stage; } - @Override - public LogReader getLogReader() { - return logReader; - } - - @Override - public void setLogReader(String filePath) { - logReader = new LogReader(filePath); - } } \ No newline at end of file diff --git a/src/main/java/it/unibz/videotaxi/diagrams/Diagram_timeLine.java b/src/main/java/it/unibz/videotaxi/diagrams/Diagram_timeLine.java index a389220..27310b0 100644 --- a/src/main/java/it/unibz/videotaxi/diagrams/Diagram_timeLine.java +++ b/src/main/java/it/unibz/videotaxi/diagrams/Diagram_timeLine.java @@ -3,107 +3,82 @@ package it.unibz.videotaxi.diagrams; import it.unibz.videotaxi.LogReader; import javafx.application.Application; import javafx.scene.Scene; -import javafx.scene.chart.CategoryAxis; -import javafx.scene.chart.LineChart; -import javafx.scene.chart.NumberAxis; -import javafx.scene.chart.XYChart; +import javafx.scene.chart.*; import javafx.stage.Stage; import java.util.*; -public class Diagram_timeLine extends Application implements Diagram { +public class Diagram_timeLine extends Diagram { - private LogReader logReader; + public Diagram_timeLine(String namePane, String nameChart, Map values) { + super(namePane, nameChart); + } + + private String xLabel; + private String yLabel; + private String seriesName; + Map values; - @Override public void start(Stage stage) { + @Override + public Stage returnStage(){ - Map mapBufferLength = getLogReader().getBufferLen(); - String date = mapBufferLength.entrySet().toArray()[0].toString().substring(0,10); - String hour = "Hour: " + mapBufferLength.entrySet().toArray()[0].toString().substring(11,13); + Map mapBufferLength = values; - stage.setTitle("Buffer Length"); + stage.setTitle(getNamePane()); final CategoryAxis xAxis = new CategoryAxis(); - xAxis.setLabel("Minutes"); + xAxis.setLabel(xLabel); final NumberAxis yAxis = new NumberAxis(); + yAxis.setLabel(yLabel); final LineChart lineChart = new LineChart(xAxis,yAxis); - lineChart.setTitle("Buffer Length of " + date); + lineChart.setTitle(getNameChart()); Map sortedMamBufferLength = new TreeMap(mapBufferLength); - System.out.println(sortedMamBufferLength.toString()); + System.out.println(sortedMamBufferLength); XYChart.Series series1 = new XYChart.Series();; - series1.setName(hour); + series1.setName(seriesName); for (Map.Entry entry: sortedMamBufferLength.entrySet()) { - series1.getData().add(new XYChart.Data(entry.getKey().substring(14,19), Integer.parseInt(entry.getValue()))); + series1.getData().add(new XYChart.Data(entry.getKey(), entry.getValue())); } Scene scene = new Scene(lineChart,800,600); lineChart.getData().addAll(series1); stage.setScene(scene); - stage.show(); - } - public static void main(String[] args) { - launch(args); + return stage; } - XYChart.Series bufferLenghtReduced(Map mapBufferLength) - { - int size = mapBufferLength.size(); - - String[] timeBuffer = new String[size]; - int[] lengthBuffer = new int[size]; + /* GETTER AND SETTER */ - int i=0; - for (Map.Entry entry: mapBufferLength.entrySet()) - { - timeBuffer[i] = entry.getKey().substring(14,16); - lengthBuffer[i] = Integer.parseInt(entry.getValue()); - i++; - } - - int countEquals = 1; - int sumEquals = lengthBuffer[1]; - Map reducedBufferLength = new HashMap<>(); - - for (i=1; i entry: reducedBufferLength.entrySet()) - { - series.getData().add(new XYChart.Data(entry.getKey(), entry.getValue())); - } + public String getyLabel() { + return yLabel; + } - return series; + public void setyLabel(String yLabel) { + this.yLabel = yLabel; } - @Override - public void setLogReader(String filePath) { - logReader = new LogReader(filePath); + public String getSeriesName() { + return seriesName; } - @Override - public LogReader getLogReader() { - return logReader; + public void setSeriesName(String seriesName) { + this.seriesName = seriesName; } + } \ No newline at end of file -- GitLab