diff --git a/src/main/java/com/application/GUI/InputPopUpWindow.java b/src/main/java/com/application/GUI/InputPopUpWindow.java index 545e799d67c88fd3f0e2501ad365955b2570bf8d..5a47e8bbfdc10440a9621c3c23c4bff8f3dd8129 100644 --- a/src/main/java/com/application/GUI/InputPopUpWindow.java +++ b/src/main/java/com/application/GUI/InputPopUpWindow.java @@ -2,7 +2,6 @@ package com.application.GUI; import com.application.DB.Constants; import com.application.DB.HelpingFunctions; -import com.application.Main; import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ObservableList; @@ -18,7 +17,6 @@ import java.util.Map; import static com.application.DB.Constants.*; import static com.application.DB.DB.getCurrentDrying; -import static com.application.DB.HelpingFunctions.LOADED_DATA; import static com.application.DB.HelpingFunctions.setLoadedData; import static com.application.GUI.LineChartFunctionality.*; import static com.application.Main.*; @@ -35,12 +33,6 @@ public class InputPopUpWindow { private static boolean err = false; - public static void exitDataThread(){ - Platform.exit(); - System.exit(0); - } - - public static void display() { Stage window = new Stage(); diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java index 501eb1460a43fc96348c1ab5cd5665ce87270337..837d2d409878991139f2215026c7260fc001ddf9 100644 --- a/src/main/java/com/application/GUI/LineChartFunctionality.java +++ b/src/main/java/com/application/GUI/LineChartFunctionality.java @@ -1,6 +1,7 @@ package com.application.GUI; import com.application.DB.Constants; +import com.application.DB.HelpingFunctions; import com.application.Main; import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.LineChart; @@ -15,8 +16,13 @@ import org.checkerframework.checker.units.qual.A; import org.jblas.DoubleMatrix; import org.jblas.Solve; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; +import static com.application.GUI.LineChartFunctionality.getDataPointsXAxis; + public class LineChartFunctionality { private static LineChart<String, Number> lineChart; @@ -52,7 +58,7 @@ public class LineChartFunctionality { previousData = new ArrayList<>(); printRegression = true; - printRegressionConfidenceInterval = true; + printRegressionConfidenceInterval = false; printLiveData = true; printPreviousData = true; } @@ -65,19 +71,10 @@ public class LineChartFunctionality { */ public static void printGraphs() { - System.out.println("Graph size: " + getLineChart().getData().size()); - - - //clearLineChart(); getLineChart().getData().clear(); - //Collections.singleton(getLineChart().getData().setAll()); - //getLineChart().getData().setAll(); - - System.out.println("Graph size after clear: " + getLineChart().getData().size()); - //getLineChart().getData().remo - if(printLiveData){ - updateLineChart(getLiveDataSeries()); + if(printRegressionConfidenceInterval){ + updateLineChart(getRegressionSeriesConfidenceInterval()); } else { updateLineChart(new XYChart.Series<>()); } @@ -88,8 +85,8 @@ public class LineChartFunctionality { updateLineChart(new XYChart.Series<>()); } - if(printRegressionConfidenceInterval){ - updateLineChart(getRegressionSeriesConfidenceInterval()); + if(printLiveData){ + updateLineChart(getLiveDataSeries()); } else { updateLineChart(new XYChart.Series<>()); } @@ -433,19 +430,49 @@ public class LineChartFunctionality { public static void loadLiveData(Map<String, Number> userInput) throws Exception { + // Clears any data already there + getLiveDataSeries().getData().clear(); + + // Sets the livedata in series setLiveData(userInput); + + // Updates time left getTimeLeft(userInput.size()); - int index = 0; for (Map.Entry<String, Number> entryKwh : userInput.entrySet()) { + + // Finds the index value + int index = (int) (findDifference(HelpingFunctions.START_TIME, entryKwh.getKey()) / 10); + + // Gets kwh value Double kwhValue = entryKwh.getValue().doubleValue(); - // Connect the data to a series + // Connect the data to a series getLiveDataSeries().getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue)); - index++; } } + private static long findDifference(String start_date, String end_date) { + // Defining a simple date format + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + try{ + // try to convert the string to Date datatype + Date dateStart = dateFormat.parse(start_date); + Date dateEnd = dateFormat.parse(end_date); + + // Finds the difference in millis + long differenceMillis = dateEnd.getTime() - dateStart.getTime(); + + // Finds the difference in minutes + return (differenceMillis / (1000 * 60 )) % 60; + + } catch (Exception e) { + System.out.println(e.getMessage()); + } + return 0; + } + public static void getTimeLeft(int liveData){ int minutes = 0; int hours = 0; @@ -464,7 +491,7 @@ public class LineChartFunctionality { if(minutes == 60){NotificationPopUp.displayNotificationWindow("1 Hours Left!");} Main.setTimeLeftText(minutes + " min"); } - if(minutes == 0){ + if(minutes == 0 && getDataPointsXAxis() != 0){ NotificationPopUp.displayNotificationWindow("Drying Process Finished!"); } } diff --git a/src/main/java/com/application/GUI/ProgressCircleIndicator.java b/src/main/java/com/application/GUI/ProgressBar/ProgressCircleIndicator.java similarity index 99% rename from src/main/java/com/application/GUI/ProgressCircleIndicator.java rename to src/main/java/com/application/GUI/ProgressBar/ProgressCircleIndicator.java index 4ef8a946a9f2d0c579c57395673c734e2a80f5cf..435e13d205bd9ac9bb8c95afe9e9efb62678ba00 100644 --- a/src/main/java/com/application/GUI/ProgressCircleIndicator.java +++ b/src/main/java/com/application/GUI/ProgressBar/ProgressCircleIndicator.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.application.GUI; +package com.application.GUI.ProgressBar; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/com/application/GUI/RingProgressIndicator.java b/src/main/java/com/application/GUI/ProgressBar/RingProgressIndicator.java similarity index 98% rename from src/main/java/com/application/GUI/RingProgressIndicator.java rename to src/main/java/com/application/GUI/ProgressBar/RingProgressIndicator.java index a7bb3d9f196094d7299ee5e073e6b0c32f626f60..c75a908d0770450eb0f72387fe3aa03a0239389a 100644 --- a/src/main/java/com/application/GUI/RingProgressIndicator.java +++ b/src/main/java/com/application/GUI/ProgressBar/RingProgressIndicator.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.application.GUI; +package com.application.GUI.ProgressBar; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/com/application/GUI/RingProgressIndicatorSkin.java b/src/main/java/com/application/GUI/ProgressBar/RingProgressIndicatorSkin.java similarity index 99% rename from src/main/java/com/application/GUI/RingProgressIndicatorSkin.java rename to src/main/java/com/application/GUI/ProgressBar/RingProgressIndicatorSkin.java index d2193f859ca98bb00503fa65c547bd897cfbb4cb..cdc1f2710aec0b3ccdfa212a73f1c6bf4c0382c3 100644 --- a/src/main/java/com/application/GUI/RingProgressIndicatorSkin.java +++ b/src/main/java/com/application/GUI/ProgressBar/RingProgressIndicatorSkin.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.application.GUI; +package com.application.GUI.ProgressBar; import javafx.animation.Animation; import javafx.animation.Interpolator; diff --git a/src/main/java/com/application/Main.java b/src/main/java/com/application/Main.java index fedf56036e82856bc5f62a56a680d54e34341c2f..6c471af27349fe6233f842ae8932db3b8893d893 100644 --- a/src/main/java/com/application/Main.java +++ b/src/main/java/com/application/Main.java @@ -3,7 +3,7 @@ package com.application; import com.application.DB.HelpingFunctions; import com.application.GUI.InputPopUpWindow; import com.application.GUI.OutputPopUpWindow; -import com.application.GUI.RingProgressIndicator; +import com.application.GUI.ProgressBar.RingProgressIndicator; import com.application.GUI.LineChartFunctionality; import javafx.application.Application; @@ -17,7 +17,6 @@ import javafx.scene.layout.*; import javafx.scene.Scene; import javafx.stage.Stage; -import javax.naming.LimitExceededException; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; @@ -62,6 +61,11 @@ public class Main extends Application { launch(args); } + public static void exitApplication(){ + Platform.exit(); + System.exit(0); + } + /** * Initializes the application with all the different panes. * @@ -154,11 +158,15 @@ public class Main extends Application { Menu menuEdit = new Menu("Edit"); Menu menuHelp = new Menu("Help"); + MenuItem menuFileExit = new MenuItem("Exit"); + + + menuFileExit.setOnAction(event -> exitApplication()); + + menuFile.getItems().addAll(menuFileExit); // Adding the menus to the menubar - menuBar.getMenus().add(menuFile); - menuBar.getMenus().add(menuEdit); - menuBar.getMenus().add(menuHelp); + menuBar.getMenus().addAll(menuFile, menuEdit, menuHelp); // Returns the menubar return menuBar; @@ -221,7 +229,7 @@ public class Main extends Application { Button exitButton = new Button("Exit"); exitButton.setId("sideBarButtonExit"); - exitButton.setOnAction(e -> InputPopUpWindow.exitDataThread()); + exitButton.setOnAction(e -> exitApplication()); @@ -347,7 +355,7 @@ public class Main extends Application { Label regressionConfidenceIntervalText = new Label("View Regression Shadow"); CheckBox regressionConfidenceIntervalBox = new CheckBox(); - regressionConfidenceIntervalBox.setSelected(true); + regressionConfidenceIntervalBox.setSelected(false); regressionConfidenceIntervalBox.setOnAction(event -> { if(regressionConfidenceIntervalBox.isSelected()){ LineChartFunctionality.setPrintRegressionConfidenceInterval(true); diff --git a/src/main/resources/com.application/GUI/graphStyles.css b/src/main/resources/com.application/GUI/graphStyles.css index 455fbb9ab2596ef8f94c786b6088f4cfe4873912..2edbaf26f089d1c05e9c8d379d99545bb175f460 100644 --- a/src/main/resources/com.application/GUI/graphStyles.css +++ b/src/main/resources/com.application/GUI/graphStyles.css @@ -9,18 +9,18 @@ -fx-effect: null; } -.default-color0.chart-series-line{-fx-stroke: red; -fx-opacity: 1.0} +.default-color0.chart-earlier-data-line{-fx-stroke: black; -fx-opacity: 1.0} .default-color1.chart-series-line{-fx-stroke: green; -fx-opacity: 1.0} -.default-color2.chart-earlier-data-line{-fx-stroke: black; -fx-opacity: 0.1} +.default-color2.chart-series-line{-fx-stroke: red; -fx-opacity: 0.1} .default-color3.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1} .default-color4.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1} .default-color5.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1} .default-color6.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1} .default-color7.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1} -.default-color0.chart-line-symbol{-fx-background-color: red,red;} +.default-color0.chart-line-symbol{-fx-background-color: black,white;} .default-color1.chart-line-symbol{-fx-background-color: green,green;} -.default-color2.chart-line-symbol{-fx-background-color: black,white;} +.default-color2.chart-line-symbol{-fx-background-color: red,red;} .default-color3.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;} .default-color4.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;} .default-color5.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;} diff --git a/target/classes/com.application/GUI/graphStyles.css b/target/classes/com.application/GUI/graphStyles.css index 455fbb9ab2596ef8f94c786b6088f4cfe4873912..2edbaf26f089d1c05e9c8d379d99545bb175f460 100644 --- a/target/classes/com.application/GUI/graphStyles.css +++ b/target/classes/com.application/GUI/graphStyles.css @@ -9,18 +9,18 @@ -fx-effect: null; } -.default-color0.chart-series-line{-fx-stroke: red; -fx-opacity: 1.0} +.default-color0.chart-earlier-data-line{-fx-stroke: black; -fx-opacity: 1.0} .default-color1.chart-series-line{-fx-stroke: green; -fx-opacity: 1.0} -.default-color2.chart-earlier-data-line{-fx-stroke: black; -fx-opacity: 0.1} +.default-color2.chart-series-line{-fx-stroke: red; -fx-opacity: 0.1} .default-color3.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1} .default-color4.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1} .default-color5.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1} .default-color6.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1} .default-color7.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1} -.default-color0.chart-line-symbol{-fx-background-color: red,red;} +.default-color0.chart-line-symbol{-fx-background-color: black,white;} .default-color1.chart-line-symbol{-fx-background-color: green,green;} -.default-color2.chart-line-symbol{-fx-background-color: black,white;} +.default-color2.chart-line-symbol{-fx-background-color: red,red;} .default-color3.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;} .default-color4.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;} .default-color5.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;} diff --git a/target/classes/com/application/GUI/InputPopUpWindow.class b/target/classes/com/application/GUI/InputPopUpWindow.class index 9842a47d800e544997e151418ed15de64d8ee3d9..5fe2e775768312ba384e0ac7373115fa70bfc89a 100644 Binary files a/target/classes/com/application/GUI/InputPopUpWindow.class and b/target/classes/com/application/GUI/InputPopUpWindow.class differ diff --git a/target/classes/com/application/GUI/LineChartFunctionality.class b/target/classes/com/application/GUI/LineChartFunctionality.class index 57aee1313539f1ad355d32cb846c027cee1bed12..0c347f1e19491b0be62501e70eecf30edb8b9c8d 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/GUI/ProgressCircleIndicator$1.class b/target/classes/com/application/GUI/ProgressCircleIndicator$1.class deleted file mode 100644 index d0f6619ccfc51df20025bf53bd19d1be30a483a1..0000000000000000000000000000000000000000 Binary files a/target/classes/com/application/GUI/ProgressCircleIndicator$1.class and /dev/null differ diff --git a/target/classes/com/application/GUI/ProgressCircleIndicator$StyleableProperties$1.class b/target/classes/com/application/GUI/ProgressCircleIndicator$StyleableProperties$1.class deleted file mode 100644 index b2abd17a1f9d5237d8c693f2f3431d0bfa289b0c..0000000000000000000000000000000000000000 Binary files a/target/classes/com/application/GUI/ProgressCircleIndicator$StyleableProperties$1.class and /dev/null differ diff --git a/target/classes/com/application/GUI/ProgressCircleIndicator$StyleableProperties.class b/target/classes/com/application/GUI/ProgressCircleIndicator$StyleableProperties.class deleted file mode 100644 index 6ba268984e19383c6e9f0f15d192a63540fc1a5f..0000000000000000000000000000000000000000 Binary files a/target/classes/com/application/GUI/ProgressCircleIndicator$StyleableProperties.class and /dev/null differ diff --git a/target/classes/com/application/GUI/ProgressCircleIndicator.class b/target/classes/com/application/GUI/ProgressCircleIndicator.class deleted file mode 100644 index f2a2a897c8389c67ee681fcc23c1f5a8f26e4975..0000000000000000000000000000000000000000 Binary files a/target/classes/com/application/GUI/ProgressCircleIndicator.class and /dev/null differ diff --git a/target/classes/com/application/GUI/RingProgressIndicator$1.class b/target/classes/com/application/GUI/RingProgressIndicator$1.class deleted file mode 100644 index 45e87f705c61feeef1ec2e892e8517d527ae9e7a..0000000000000000000000000000000000000000 Binary files a/target/classes/com/application/GUI/RingProgressIndicator$1.class and /dev/null differ diff --git a/target/classes/com/application/GUI/RingProgressIndicator$StyleableProperties$1.class b/target/classes/com/application/GUI/RingProgressIndicator$StyleableProperties$1.class deleted file mode 100644 index f6f4608ba8c4728e9567d3828a3a5dcd43664fe5..0000000000000000000000000000000000000000 Binary files a/target/classes/com/application/GUI/RingProgressIndicator$StyleableProperties$1.class and /dev/null differ diff --git a/target/classes/com/application/GUI/RingProgressIndicator$StyleableProperties.class b/target/classes/com/application/GUI/RingProgressIndicator$StyleableProperties.class deleted file mode 100644 index a9481c06841d92100d649c3cc6af6a5d22a0626c..0000000000000000000000000000000000000000 Binary files a/target/classes/com/application/GUI/RingProgressIndicator$StyleableProperties.class and /dev/null differ diff --git a/target/classes/com/application/GUI/RingProgressIndicator.class b/target/classes/com/application/GUI/RingProgressIndicator.class deleted file mode 100644 index 1f080c004c95a0e44e6bdd514c01df9ffc7cef1e..0000000000000000000000000000000000000000 Binary files a/target/classes/com/application/GUI/RingProgressIndicator.class and /dev/null differ diff --git a/target/classes/com/application/GUI/RingProgressIndicatorSkin.class b/target/classes/com/application/GUI/RingProgressIndicatorSkin.class deleted file mode 100644 index 68574e9a1b22e916dd04365334201ee14fa7e573..0000000000000000000000000000000000000000 Binary files a/target/classes/com/application/GUI/RingProgressIndicatorSkin.class and /dev/null differ diff --git a/target/classes/com/application/Main$1WorkerThread.class b/target/classes/com/application/Main$1WorkerThread.class index 2e6f24c9e60fd26fd07531bdb7b2189fc12d020b..b1663172200e7bbc78759e7f6591fc0c346714b5 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 f118b6220aa918d8330fbdac3923da893dda2b49..2b75383dbd81ebb8c9fc02f5601c359dbd49e89a 100644 Binary files a/target/classes/com/application/Main.class and b/target/classes/com/application/Main.class differ