diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java index 837d2d409878991139f2215026c7260fc001ddf9..23d1c1042f188c544f3015ce55bb6f631dacbcf3 100644 --- a/src/main/java/com/application/GUI/LineChartFunctionality.java +++ b/src/main/java/com/application/GUI/LineChartFunctionality.java @@ -22,6 +22,7 @@ import java.time.format.DateTimeFormatter; import java.util.*; import static com.application.GUI.LineChartFunctionality.getDataPointsXAxis; +import static com.application.Main.*; public class LineChartFunctionality { @@ -73,25 +74,40 @@ public class LineChartFunctionality { getLineChart().getData().clear(); - if(printRegressionConfidenceInterval){ + if(isPrintRegressionConfidenceInterval()){ updateLineChart(getRegressionSeriesConfidenceInterval()); + getMenuViewRegressionShadow().setSelected(true); + getRegressionConfidenceIntervalBox().setSelected(true); } else { updateLineChart(new XYChart.Series<>()); + getMenuViewRegressionShadow().setSelected(false); + getRegressionConfidenceIntervalBox().setSelected(false); } - if(printRegression){ + if(isPrintRegression()){ updateLineChart(getRegressionSeries()); + getMenuViewRegression().setSelected(true); + getRegressionBox().setSelected(true); } else { updateLineChart(new XYChart.Series<>()); + getMenuViewRegression().setSelected(false); + getRegressionBox().setSelected(false); } - if(printLiveData){ + if(isPrintLiveData()){ updateLineChart(getLiveDataSeries()); + getMenuViewLiveData().setSelected(true); + getLiveDataBox().setSelected(true); } else { updateLineChart(new XYChart.Series<>()); + getMenuViewLiveData().setSelected(false); + getLiveDataBox().setSelected(false); } - if(printPreviousData){ + if(isPrintPreviousData()){ + + getPreviousBox().setSelected(true); + getMenuViewPreviousData().setSelected(true); // If there are more than 5 series, adds 3 new empty series to keep the color scheme //int index = getLineChart().getData().size(); @@ -99,18 +115,17 @@ public class LineChartFunctionality { int index = getLineChart().getData().size(); //System.out.println(getPreviousData().size()); if (index % 8 == 0 ){ - System.out.println(getLineChart().getData().size()); for (int j = 0; j < 3; j++) { updateLineChart(new XYChart.Series<>()); //index++; System.out.println("@@@@@@@"); } } - System.out.println("Linechart size: "+getLineChart().getData().size()); updateLineChart(getPreviousData().get(i)); - //index++; - } + } else { + getPreviousBox().setSelected(false); + getMenuViewPreviousData().setSelected(false); } } diff --git a/src/main/java/com/application/Main.java b/src/main/java/com/application/Main.java index 6c471af27349fe6233f842ae8932db3b8893d893..1deceb77622a5ca5a63b6a3c8c6ffe368a47f18f 100644 --- a/src/main/java/com/application/Main.java +++ b/src/main/java/com/application/Main.java @@ -51,6 +51,16 @@ public class Main extends Application { private static TextField moistureGoalText; private static TextField timeLeftText; + private static CheckMenuItem menuViewLiveData; + private static CheckMenuItem menuViewRegression; + private static CheckMenuItem menuViewRegressionShadow; + private static CheckMenuItem menuViewPreviousData; + + private static CheckBox liveDataBox; + private static CheckBox regressionBox; + private static CheckBox regressionConfidenceIntervalBox; + private static CheckBox previousBox; + /** * Starts the application * @@ -155,18 +165,61 @@ public class Main extends Application { // Defining the individual menus Menu menuFile = new Menu("File"); - Menu menuEdit = new Menu("Edit"); + Menu menuView = new Menu("View"); Menu menuHelp = new Menu("Help"); MenuItem menuFileExit = new MenuItem("Exit"); + menuFileExit.setOnAction(event -> exitApplication()); + + setMenuViewLiveData(new CheckMenuItem ("Live Data")); + setMenuViewRegression(new CheckMenuItem ("Regression")); + setMenuViewRegressionShadow(new CheckMenuItem ("Regression Shadow")); + setMenuViewPreviousData(new CheckMenuItem ("Previous Data")); + + getMenuViewLiveData().setOnAction(event -> { + if(getMenuViewLiveData().isSelected()){ + LineChartFunctionality.setPrintLiveData(true); + LineChartFunctionality.printGraphs(); + } else { + LineChartFunctionality.setPrintLiveData(false); + LineChartFunctionality.printGraphs(); + } + }); + getMenuViewRegression().setOnAction(event -> { + if(getMenuViewRegression().isSelected()){ + LineChartFunctionality.setPrintRegression(true); + LineChartFunctionality.printGraphs(); + } else { + LineChartFunctionality.setPrintRegression(false); + LineChartFunctionality.printGraphs(); + } + }); + getMenuViewRegressionShadow().setOnAction(event -> { + if(getMenuViewRegressionShadow().isSelected()){ + LineChartFunctionality.setPrintRegressionConfidenceInterval(true); + LineChartFunctionality.printGraphs(); + } else { + LineChartFunctionality.setPrintRegressionConfidenceInterval(false); + LineChartFunctionality.printGraphs(); + } + }); + getMenuViewPreviousData().setOnAction(event -> { + if(getMenuViewPreviousData().isSelected()){ + LineChartFunctionality.setPrintPreviousData(true); + LineChartFunctionality.printGraphs(); + } else { + LineChartFunctionality.setPrintPreviousData(false); + LineChartFunctionality.printGraphs(); + } + }); - menuFileExit.setOnAction(event -> exitApplication()); menuFile.getItems().addAll(menuFileExit); + menuView.getItems().addAll(getMenuViewLiveData(), getMenuViewRegression(), getMenuViewRegressionShadow(), getMenuViewPreviousData()); // Adding the menus to the menubar - menuBar.getMenus().addAll(menuFile, menuEdit, menuHelp); + menuBar.getMenus().addAll(menuFile, menuView, menuHelp); // Returns the menubar return menuBar; @@ -326,10 +379,10 @@ public class Main extends Application { HBox hBox = new HBox(); Label liveDataText = new Label("View Live Data"); - CheckBox liveDataBox = new CheckBox(); - liveDataBox.setSelected(true); - liveDataBox.setOnAction(event -> { - if(liveDataBox.isSelected()){ + setLiveDataBox(new CheckBox()); + getLiveDataBox().setSelected(true); + getLiveDataBox().setOnAction(event -> { + if(getLiveDataBox().isSelected()){ LineChartFunctionality.setPrintLiveData(true); LineChartFunctionality.printGraphs(); @@ -340,10 +393,10 @@ public class Main extends Application { }); Label regressionText = new Label("View Regression"); - CheckBox regressionBox = new CheckBox(); - regressionBox.setSelected(true); - regressionBox.setOnAction(event -> { - if(regressionBox.isSelected()){ + setRegressionBox(new CheckBox()); + getRegressionBox().setSelected(true); + getRegressionBox().setOnAction(event -> { + if(getRegressionBox().isSelected()){ LineChartFunctionality.setPrintRegression(true); LineChartFunctionality.printGraphs(); @@ -354,10 +407,10 @@ public class Main extends Application { }); Label regressionConfidenceIntervalText = new Label("View Regression Shadow"); - CheckBox regressionConfidenceIntervalBox = new CheckBox(); - regressionConfidenceIntervalBox.setSelected(false); - regressionConfidenceIntervalBox.setOnAction(event -> { - if(regressionConfidenceIntervalBox.isSelected()){ + setRegressionConfidenceIntervalBox(new CheckBox()); + getRegressionConfidenceIntervalBox().setSelected(false); + getRegressionConfidenceIntervalBox().setOnAction(event -> { + if(getRegressionConfidenceIntervalBox().isSelected()){ LineChartFunctionality.setPrintRegressionConfidenceInterval(true); LineChartFunctionality.printGraphs(); } else { @@ -367,10 +420,10 @@ public class Main extends Application { }); Label previousText = new Label("View Previous Data"); - CheckBox previousBox = new CheckBox(); - previousBox.setSelected(true); - previousBox.setOnAction(event -> { - if(previousBox.isSelected()){ + setPreviousBox(new CheckBox()); + getPreviousBox().setSelected(true); + getPreviousBox().setOnAction(event -> { + if(getPreviousBox().isSelected()){ LineChartFunctionality.setPrintPreviousData(true); LineChartFunctionality.printGraphs(); } else { @@ -413,6 +466,70 @@ public class Main extends Application { public LineChartFunctionality getLineChartFunctionality() { return lineChartFunctionality; } + + public static CheckMenuItem getMenuViewLiveData() { + return menuViewLiveData; + } + + public static void setMenuViewLiveData(CheckMenuItem menuViewLiveData) { + Main.menuViewLiveData = menuViewLiveData; + } + + public static CheckMenuItem getMenuViewRegression() { + return menuViewRegression; + } + + public void setMenuViewRegression(CheckMenuItem menuViewRegression) { + Main.menuViewRegression = menuViewRegression; + } + + public static CheckMenuItem getMenuViewRegressionShadow() { + return menuViewRegressionShadow; + } + + public void setMenuViewRegressionShadow(CheckMenuItem menuViewRegressionShadow) { + this.menuViewRegressionShadow = menuViewRegressionShadow; + } + + public static CheckMenuItem getMenuViewPreviousData() { + return menuViewPreviousData; + } + + public void setMenuViewPreviousData(CheckMenuItem menuViewPreviousData) { + Main.menuViewPreviousData = menuViewPreviousData; + } + + public static CheckBox getLiveDataBox() { + return liveDataBox; + } + + public void setLiveDataBox(CheckBox liveDataBox) { + Main.liveDataBox = liveDataBox; + } + + public static CheckBox getRegressionBox() { + return regressionBox; + } + + public void setRegressionBox(CheckBox regressionBox) { + Main.regressionBox = regressionBox; + } + + public static CheckBox getRegressionConfidenceIntervalBox() { + return regressionConfidenceIntervalBox; + } + + public void setRegressionConfidenceIntervalBox(CheckBox regressionConfidenceIntervalBox) { + Main.regressionConfidenceIntervalBox = regressionConfidenceIntervalBox; + } + + public static CheckBox getPreviousBox() { + return previousBox; + } + + public void setPreviousBox(CheckBox previousBox) { + Main.previousBox = previousBox; + } } diff --git a/target/classes/com/application/GUI/LineChartFunctionality.class b/target/classes/com/application/GUI/LineChartFunctionality.class index 0c347f1e19491b0be62501e70eecf30edb8b9c8d..3b8cac832575fc635d10cc62e82deeda1648c460 100644 Binary files a/target/classes/com/application/GUI/LineChartFunctionality.class and b/target/classes/com/application/GUI/LineChartFunctionality.class differ diff --git a/target/classes/com/application/Main$1WorkerThread.class b/target/classes/com/application/Main$1WorkerThread.class index b1663172200e7bbc78759e7f6591fc0c346714b5..e79fcb3e2b285f268f3c36e356b87edc495690c5 100644 Binary files a/target/classes/com/application/Main$1WorkerThread.class and b/target/classes/com/application/Main$1WorkerThread.class differ diff --git a/target/classes/com/application/Main.class b/target/classes/com/application/Main.class index bb4be3d39984c9a4ca925cc07a09e12c2343f7e0..e75066f16a47ba1ce3d8cd1a2f480d290f6edff0 100644 Binary files a/target/classes/com/application/Main.class and b/target/classes/com/application/Main.class differ