From 84a3fbdcf26c3fd833f299c63c7e6948f0367ef9 Mon Sep 17 00:00:00 2001
From: Eilert Tunheim <emtunhei@stud.ntnu.no>
Date: Fri, 13 May 2022 10:26:32 +0200
Subject: [PATCH] Fixed clear regression series outside of for-loop.

---
 .../com/application/DB/Account_handler.java   |   5 ++--
 src/main/java/com/application/DB/DB.java      |   6 ++---
 .../com/application/DB/HelpingFunctions.java  |  25 +++++++-----------
 .../GUI/LineChartFunctionality.java           |   3 ++-
 .../{BottomBar.java => CreateBottomBar.java}  |   4 +--
 .../{LogoBar.java => CreateLogoBar.java}      |   3 +--
 .../{MenuBar.java => CreateMenuBar.java}      |   4 +--
 .../{SideBar.java => CreateSideBar.java}      |   4 +--
 .../GUI/PopUpWindows/LoginPopup.java          |   2 +-
 src/main/java/com/application/Main.java       |  23 ++++++++--------
 .../GUI/LineChartFunctionality.class          | Bin 19826 -> 19687 bytes
 11 files changed, 36 insertions(+), 43 deletions(-)
 rename src/main/java/com/application/GUI/Panes/{BottomBar.java => CreateBottomBar.java} (97%)
 rename src/main/java/com/application/GUI/Panes/{LogoBar.java => CreateLogoBar.java} (97%)
 rename src/main/java/com/application/GUI/Panes/{MenuBar.java => CreateMenuBar.java} (98%)
 rename src/main/java/com/application/GUI/Panes/{SideBar.java => CreateSideBar.java} (98%)

diff --git a/src/main/java/com/application/DB/Account_handler.java b/src/main/java/com/application/DB/Account_handler.java
index e5a7cf0..516778c 100644
--- a/src/main/java/com/application/DB/Account_handler.java
+++ b/src/main/java/com/application/DB/Account_handler.java
@@ -1,6 +1,6 @@
 package com.application.DB;
 
-import com.application.GUI.Panes.LogoBar;
+import com.application.GUI.Panes.CreateLogoBar;
 import com.application.GUI.PopUpWindows.NotificationPopUp;
 import com.google.cloud.bigquery.FieldValueList;
 import com.google.cloud.bigquery.TableResult;
@@ -8,7 +8,6 @@ import com.google.cloud.bigquery.TableResult;
 import static com.application.DB.Constants.*;
 import static com.application.DB.Settings.*;
 import static com.application.GUI.PopUpWindows.LoginPopup.getPasswordTextField;
-import static java.lang.System.err;
 
 public class Account_handler {
 
@@ -20,7 +19,7 @@ public class Account_handler {
             for (FieldValueList row : result.iterateAll()) {
 
                 if (row.get("Username").getValue().equals(username)) {
-                    LogoBar.getLogin().setText(username);
+                    CreateLogoBar.getLogin().setText(username);
                     setUserName(username);
 
                     if (!row.get("Phone_no").isNull()) {
diff --git a/src/main/java/com/application/DB/DB.java b/src/main/java/com/application/DB/DB.java
index 5955e6b..0aadbdf 100644
--- a/src/main/java/com/application/DB/DB.java
+++ b/src/main/java/com/application/DB/DB.java
@@ -274,8 +274,7 @@ public class DB {
             TableResult result = HelpingFunctions.createQueryJob(sqlStatement);
 
             //System.out.println("Timestamp \t kWh");
-            int baseline = 0;
-            HelpingFunctions.iterateKwhValues(data, baseline, result, KwhName, timestamp);
+            HelpingFunctions.iterateKwhValues(data, result, KwhName, timestamp);
 
             System.out.println("Data size: " + data.size());
 
@@ -625,7 +624,6 @@ public class DB {
         // Initializing the data map to store the results
         Map<String, Number> data = new HashMap<>();
         // Initializing baseline
-        int baseline = 0;
 
         // Sqlstatement
         final String sqlStatement = "SELECT `" + KWH_TIMESTAMP_NAME_PARAMETER + "`, `" + KWH_NAME_PARAMETER + "` " +
@@ -643,7 +641,7 @@ public class DB {
 
         //System.out.println("InTidTork\t\t\tUtTidTork");
         // Iterating through the results
-        HelpingFunctions.iterateKwhValues(data, baseline, result, KWH_NAME_PARAMETER, KWH_TIMESTAMP_NAME_PARAMETER);
+        HelpingFunctions.iterateKwhValues(data, result, KWH_NAME_PARAMETER, KWH_TIMESTAMP_NAME_PARAMETER);
         return new TreeMap<>(data);
     }
 
diff --git a/src/main/java/com/application/DB/HelpingFunctions.java b/src/main/java/com/application/DB/HelpingFunctions.java
index cdeeafa..de63c56 100644
--- a/src/main/java/com/application/DB/HelpingFunctions.java
+++ b/src/main/java/com/application/DB/HelpingFunctions.java
@@ -31,7 +31,7 @@ public class HelpingFunctions {
     }
 
     /**
-     * Retrieves the credentials file
+     * Retrieves the credentials file and grants access to the database
      *
      * @return the credentials
      * @throws Exception for potential errors
@@ -39,9 +39,6 @@ public class HelpingFunctions {
     private static GoogleCredentials getCredentials() throws Exception {
         File credentialsPath = new File("./src/main/resources/com.application/"+KEY_FILE_NAME);
 
-        // Load credentials from JSON key file. If you can't set the GOOGLE_APPLICATION_CREDENTIALS
-        // environment variable, you can explicitly load the credentials file to construct the
-        // credentials.
         GoogleCredentials credentials;
         try (FileInputStream serviceAccountStream = new FileInputStream(credentialsPath)) {
             credentials = ServiceAccountCredentials.fromStream(serviceAccountStream);
@@ -50,16 +47,13 @@ public class HelpingFunctions {
     }
 
     /**
-     * Creates a bigquery builder
+     * Creates a bigquery builder. Here we set the project ID and get the `BigQuery` service object.
+     * this is the interface to our BigQuery instance that we use to execute jobs on.
      *
      * @return a builder
      * @throws Exception returns potential error
      */
     private static BigQuery getBuilder() throws Exception {
-        // Step 1: Initialize BigQuery service
-        // Here we set our project ID and get the `BigQuery` service object
-        // this is the interface to our BigQuery instance that
-        // we use to execute jobs on
         return BigQueryOptions.newBuilder().
                 setCredentials(getCredentials()).
                 setProjectId(PROJECT_ID)
@@ -77,9 +71,9 @@ public class HelpingFunctions {
         // Step 3: Run the job on BigQuery
         // create a `Job` instance from the job configuration using the BigQuery service
         // the job starts executing once the `create` method executes
-
         Job queryJob = getBuilder().create(JobInfo.newBuilder(queryConfig).build());
         queryJob = queryJob.waitFor();
+
         // the waitFor method blocks until the job completes
         // and returns `null` if the job doesn't exist anymore
         if (queryJob == null) {
@@ -107,7 +101,6 @@ public class HelpingFunctions {
 
         // Retrieves the results from the queryjob
         return queryJob.getQueryResults();
-
     }
 
     /**
@@ -120,15 +113,17 @@ public class HelpingFunctions {
     }
 
     /**
-     * Function to iterate through all the Kwh values and storing them in a map
+     * Iterates through all the Kwh values and storing them in a map
      *
      * @param data a map to store all the data
-     * @param baseline a baseline to base all the next values of to get a zero point
      * @param result TableResult to iterate through
      * @param kwhNameParameter Name of the Kwh name parameter in the database
      * @param kwhTimestampNameParameter Name of the timestamp parameter in the database
      */
-    static void iterateKwhValues(Map<String, Number> data, int baseline, TableResult result, String kwhNameParameter, String kwhTimestampNameParameter) {
+    static void iterateKwhValues(Map<String, Number> data, TableResult result, String kwhNameParameter, String kwhTimestampNameParameter) {
+        // A baseline to base all the next values of to get a zero point
+        int baseline = 0;
+
         for (FieldValueList row : result.iterateAll()) {
             // Sets the baseline in order to reset the kWh counter
             if (baseline == 0) {
@@ -136,7 +131,7 @@ public class HelpingFunctions {
             }
 
             // kWh value
-            int variantValue = row.get("" + kwhNameParameter + "").getNumericValue().intValue() - baseline; //-baseline
+            int variantValue = row.get("" + kwhNameParameter + "").getNumericValue().intValue() - baseline;
 
             // Retrieving the wanted data
             long timeStamp = row.get("" + kwhTimestampNameParameter + "").getTimestampValue() / 1000;
diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java
index 1ba057f..246c239 100644
--- a/src/main/java/com/application/GUI/LineChartFunctionality.java
+++ b/src/main/java/com/application/GUI/LineChartFunctionality.java
@@ -347,6 +347,7 @@ public class LineChartFunctionality {
 
 
         //XYChart.Series<String, Number> regressionSeries = new XYChart.Series<String, Number>();
+        getRegressionSeries().getData().clear();
         for (int i = 0; i <= getDataPointsXAxis(); i++) {
 
             // Connect the data to a series
@@ -377,7 +378,7 @@ public class LineChartFunctionality {
              */
 
 
-            getRegressionSeries().getData().clear();
+
             getRegressionSeries().getData().add(new XYChart.Data<String, Number>(
                     String.valueOf(i),
                     getNonLinearRegression(
diff --git a/src/main/java/com/application/GUI/Panes/BottomBar.java b/src/main/java/com/application/GUI/Panes/CreateBottomBar.java
similarity index 97%
rename from src/main/java/com/application/GUI/Panes/BottomBar.java
rename to src/main/java/com/application/GUI/Panes/CreateBottomBar.java
index d7023b0..70fd912 100644
--- a/src/main/java/com/application/GUI/Panes/BottomBar.java
+++ b/src/main/java/com/application/GUI/Panes/CreateBottomBar.java
@@ -8,10 +8,10 @@ import javafx.scene.control.CheckBox;
 import javafx.scene.control.Label;
 import javafx.scene.layout.HBox;
 
-public class BottomBar {
+public class CreateBottomBar {
     private final Main main;
 
-    public BottomBar(Main main) {
+    public CreateBottomBar(Main main) {
         this.main = main;
     }
 
diff --git a/src/main/java/com/application/GUI/Panes/LogoBar.java b/src/main/java/com/application/GUI/Panes/CreateLogoBar.java
similarity index 97%
rename from src/main/java/com/application/GUI/Panes/LogoBar.java
rename to src/main/java/com/application/GUI/Panes/CreateLogoBar.java
index 4cb813b..2223ffd 100644
--- a/src/main/java/com/application/GUI/Panes/LogoBar.java
+++ b/src/main/java/com/application/GUI/Panes/CreateLogoBar.java
@@ -1,7 +1,6 @@
 package com.application.GUI.Panes;
 
 import com.application.GUI.PopUpWindows.LoginPopup;
-import javafx.geometry.Pos;
 import javafx.scene.control.Button;
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
@@ -14,7 +13,7 @@ import java.io.FileNotFoundException;
 
 import static com.application.DB.Constants.isIsAdmin;
 
-public class LogoBar {
+public class CreateLogoBar {
 
     private static Button login = new Button("Login");
 
diff --git a/src/main/java/com/application/GUI/Panes/MenuBar.java b/src/main/java/com/application/GUI/Panes/CreateMenuBar.java
similarity index 98%
rename from src/main/java/com/application/GUI/Panes/MenuBar.java
rename to src/main/java/com/application/GUI/Panes/CreateMenuBar.java
index c784df0..b5467ef 100644
--- a/src/main/java/com/application/GUI/Panes/MenuBar.java
+++ b/src/main/java/com/application/GUI/Panes/CreateMenuBar.java
@@ -8,10 +8,10 @@ import javafx.scene.control.CheckMenuItem;
 import javafx.scene.control.Menu;
 import javafx.scene.control.MenuItem;
 
-public class MenuBar {
+public class CreateMenuBar {
     private final Main main;
 
-    public MenuBar(Main main) {
+    public CreateMenuBar(Main main) {
         this.main = main;
     }
 
diff --git a/src/main/java/com/application/GUI/Panes/SideBar.java b/src/main/java/com/application/GUI/Panes/CreateSideBar.java
similarity index 98%
rename from src/main/java/com/application/GUI/Panes/SideBar.java
rename to src/main/java/com/application/GUI/Panes/CreateSideBar.java
index 6747aeb..b4b4309 100644
--- a/src/main/java/com/application/GUI/Panes/SideBar.java
+++ b/src/main/java/com/application/GUI/Panes/CreateSideBar.java
@@ -20,9 +20,9 @@ import static com.application.GUI.LineChartFunctionality.getDataPointsXAxis;
 import static com.application.GUI.LineChartFunctionality.getLiveData;
 import static java.util.logging.Level.SEVERE;
 
-public class SideBar {
+public class CreateSideBar {
 
-    public SideBar(Main main) {
+    public CreateSideBar(Main main) {
     }
 
     public VBox createSideBar() {
diff --git a/src/main/java/com/application/GUI/PopUpWindows/LoginPopup.java b/src/main/java/com/application/GUI/PopUpWindows/LoginPopup.java
index 878fba6..55e55ce 100644
--- a/src/main/java/com/application/GUI/PopUpWindows/LoginPopup.java
+++ b/src/main/java/com/application/GUI/PopUpWindows/LoginPopup.java
@@ -12,7 +12,7 @@ import java.security.MessageDigest;
 
 import static com.application.DB.Account_handler.*;
 import static com.application.DB.Constants.*;
-import static com.application.GUI.Panes.LogoBar.getLogin;
+import static com.application.GUI.Panes.CreateLogoBar.getLogin;
 
 public class LoginPopup {
 
diff --git a/src/main/java/com/application/Main.java b/src/main/java/com/application/Main.java
index d6b924d..a20d33c 100644
--- a/src/main/java/com/application/Main.java
+++ b/src/main/java/com/application/Main.java
@@ -1,9 +1,10 @@
 package com.application;
 
+import com.application.GUI.Panes.CreateMenuBar;
 import com.application.GUI.PopUpWindows.InputPopup;
-import com.application.GUI.Panes.BottomBar;
-import com.application.GUI.Panes.LogoBar;
-import com.application.GUI.Panes.SideBar;
+import com.application.GUI.Panes.CreateBottomBar;
+import com.application.GUI.Panes.CreateLogoBar;
+import com.application.GUI.Panes.CreateSideBar;
 import com.application.GUI.LineChartFunctionality;
 
 import com.application.GUI.PopUpWindows.LoginPopup;
@@ -25,10 +26,10 @@ import java.io.IOException;
  */
 public class Main extends Application {
 
-    private final BottomBar bottomBar1 = new BottomBar(this);
-    private final com.application.GUI.Panes.MenuBar menuBar1 = new com.application.GUI.Panes.MenuBar(this);
-    private final SideBar sideBar1 = new SideBar(this);
-    private final LogoBar logoBar1 = new LogoBar();
+    private final CreateBottomBar createBottomBar1 = new CreateBottomBar(this);
+    private final CreateMenuBar createMenuBar1 = new CreateMenuBar(this);
+    private final CreateSideBar createSideBar1 = new CreateSideBar(this);
+    private final CreateLogoBar createLogoBar1 = new CreateLogoBar();
 
     private BorderPane topBar;
     private HBox logoBar;
@@ -96,9 +97,9 @@ public class Main extends Application {
 
         // Create panes for root
         BorderPane root = new BorderPane();
-        this.menuBar = menuBar1.createMenuBar();
-        this.sideBar = sideBar1.createSideBar();
-        this.logoBar = logoBar1.createLogoBar();
+        this.menuBar = createMenuBar1.createMenuBar();
+        this.sideBar = createSideBar1.createSideBar();
+        this.logoBar = createLogoBar1.createLogoBar();
 
         LineChart<String, Number> lineChart = LineChartFunctionality.getLineChart();
 
@@ -107,7 +108,7 @@ public class Main extends Application {
         this.logoBar.setId("logoBar");
         this.menuBar.setId("menuBar");
         this.sideBar.setId("sideBar");
-        this.bottomBar = bottomBar1.createBottomBar();
+        this.bottomBar = createBottomBar1.createBottomBar();
         this.bottomBar.setId("bottomBar");
         lineChart.setId("lineChart");
 
diff --git a/target/classes/com/application/GUI/LineChartFunctionality.class b/target/classes/com/application/GUI/LineChartFunctionality.class
index 30bd0f2183c54ab6bccf4cc5eda99118dc7ac9f9..bc6a733dad6584d6375cd818bbd9a7750cfdd36a 100644
GIT binary patch
delta 8865
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
Q7(X(80<oAlnYfs^0j*DY-2eap

delta 8970
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
V%D~L{jqy9<4-kuqkBOg2008*To>Kq-

-- 
GitLab