diff --git a/src/main/java/it/unibz/videotaxi/LogReader.java b/src/main/java/it/unibz/videotaxi/LogReader.java index 76774c47315462654493b561a565d7c099a25f47..580c551d2c8978dba7fea6c74a07b61da2058afa 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 c67c9663fd1b788a1d601d8b7a9c57c9e5f089f5..45c9e97126a75a88d0b22af155fdeed987c1e6e7 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 bd6e8a48aa1551861a033d978e17d3c23382c674..af556d417bc05d842a9a96868c0ebd28a9d25684 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 23cd444014e92e75e85a28affb56c08f0dbaea72..f63437438a589cdbceb6caa878173f93dded5c41 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 3d8d94acbb615025b2e1e1d30fa79dcc295e11bd..0cd5098a9c08562010827d30aec8a0f5c0531f7e 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 a389220823e07d15c3a53a131ab8a8a9234783f6..27310b011c866fce97860eb53a5678bed04ad8a1 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