Skip to content
Snippets Groups Projects
Commit 4b1ba270 authored by Eilert Tunheim's avatar Eilert Tunheim
Browse files

Added functionality to turn on and off graphs

parent 8ca120ec
No related branches found
No related tags found
No related merge requests found
......@@ -16,47 +16,73 @@ import org.jblas.Solve;
import java.util.*;
import static com.application.DB.Constants.ADJUST_REGRESSION;
import static com.application.DB.Constants.CONFIDENCE_INTERVAL;
public class LineChartFunctionality {
private static LineChart<String, Number> lineChart;
private static XYChart.Series<String, Number> liveDataSeries;
private static XYChart.Series<String, Number> regressionSeries;
private static XYChart.Series<String, Number> regressionSeriesConfidenceInterval;
private static CategoryAxis xAxis;
private static NumberAxis yAxis;
private static int dataPointsXAxis = 0;
private static int dataPointsYAxis = 0;
private static Map<String, Number> liveData;
private static ArrayList<XYChart.Series<String, Number>> previousData;
private static boolean printRegression;
private static boolean printRegressionConfidenceInterval;
private static boolean printLiveData;
private static boolean printPreviousData;
public LineChartFunctionality() {
xAxis = new CategoryAxis();
yAxis = new NumberAxis();
lineChart = new LineChart<>(xAxis, yAxis);
lineChart.setTitle("Drying Processes");
lineChart.setAnimated(false);
xAxis.setLabel("Data Points");
xAxis.setAnimated(false);
yAxis.setLabel("Kwh");
yAxis.setAnimated(false);
lineChart.setTitle("Drying Processes");
regressionSeries = new XYChart.Series<String, Number>();
regressionSeriesConfidenceInterval = new XYChart.Series<String, Number>();
liveDataSeries = new XYChart.Series<String, Number>();
previousData = new ArrayList<>();
printRegression = true;
printRegressionConfidenceInterval = true;
printLiveData = true;
printPreviousData = true;
}
public static LineChart<String, Number> getLineChart() {
return lineChart;
public static void printGraphs() {
clearLineChart();
if(printLiveData){
updateLineChart(getLiveDataSeries());
}
if(printRegression){
if (!printLiveData){updateLineChart(new XYChart.Series<>());}
updateLineChart(getRegressionSeries());
}
if(printRegressionConfidenceInterval){
if (!printLiveData){updateLineChart(new XYChart.Series<>());}
if (!printRegression){updateLineChart(new XYChart.Series<>());}
updateLineChart(getRegressionSeriesConfidenceInterval());
}
if(printPreviousData){
if (!printLiveData){updateLineChart(new XYChart.Series<>());}
if (!printRegression){updateLineChart(new XYChart.Series<>());}
if (!printRegressionConfidenceInterval){updateLineChart(new XYChart.Series<>());}
for (int i = 0; i < getPreviousData().size(); i++) {
updateLineChart(getPreviousData().get(i));
}
}
}
public static void updateLineChart(XYChart.Series<String, Number> series) {
lineChart.getData().add(series);
series.getNode().setId("dataGraphs");
lineChart.getStylesheets().add(LineChartFunctionality.class.getResource("/com.application/GUI/graphStyles.css").toExternalForm());
}
public static void clearLineChart() {
lineChart.getData().clear();
}
private static Map<Integer, ArrayList<Double>> statistics(Map<Integer, ArrayList<Double>> multiMap){
......@@ -142,8 +168,10 @@ public class LineChartFunctionality {
int numberOfGraphs = 0;
ArrayList<Double> dataArraylistXAxis = new ArrayList<>();
ArrayList<Double> dataArraylistYAxis = new ArrayList<>();
//ArrayList<Double> confidenceIntervalShadowArrayList = new ArrayList<>();
Map<Integer, ArrayList<Double>> endOfGraphPointsXAxis = new HashMap<>();
Map<Integer, ArrayList<Double>> endOfGraphPointsYAxis = new HashMap<>();
//Map<Integer, ArrayList<Double>> confidenceIntervalShadowMap = new HashMap<>();
for (int i = 0; i < multiMap.size(); i++) {
ArrayList<Double> list = multiMap.get(i);
for (int j = 0; j < list.size(); j++) {
......@@ -256,8 +284,7 @@ public class LineChartFunctionality {
}
liveDataSeries = new XYChart.Series<String, Number>();
updateLineChart(liveDataSeries);
//updateLineChart(liveDataSeries);
//XYChart.Series<String, Number> regressionSeries = new XYChart.Series<String, Number>();
......@@ -292,7 +319,7 @@ public class LineChartFunctionality {
regressionSeries.getData().add(new XYChart.Data<String, Number>(
getRegressionSeries().getData().add(new XYChart.Data<String, Number>(
String.valueOf(i),
getNonLinearRegression(
confidenceIntervalData,
......@@ -304,11 +331,12 @@ public class LineChartFunctionality {
}
updateLineChart(regressionSeries);
//updateLineChart(getRegressionSeries());
//lineChart.setOpacity(1);
getPreviousData().clear();
for (Map.Entry<Integer, Map<String, Number>> entryKwh : userInput.entrySet()) {
//System.out.println(data.size());
XYChart.Series<String, Number> newSeries = new XYChart.Series<String, Number>();
......@@ -322,8 +350,9 @@ public class LineChartFunctionality {
newSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue));
index++;
}
addPreviousData(newSeries);
//allSeries.add(newSeries);
updateLineChart(newSeries);
//updateLineChart(newSeries);
//lineChart.setOpacity(1);
}
......@@ -347,6 +376,8 @@ public class LineChartFunctionality {
getTimeLeft(0);
printGraphs();
return getLineChart();
}
......@@ -360,7 +391,7 @@ public class LineChartFunctionality {
Double kwhValue = entryKwh.getValue().doubleValue();
// Connect the data to a series
liveDataSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue));
getLiveDataSeries().getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue));
index++;
}
}
......@@ -539,4 +570,67 @@ public class LineChartFunctionality {
public static XYChart.Series<String, Number> getRegressionSeries() {
return regressionSeries;
}
public static boolean isPrintRegression() {
return printRegression;
}
public static void setPrintRegression(boolean printRegression) {
LineChartFunctionality.printRegression = printRegression;
}
public static boolean isPrintRegressionConfidenceInterval() {
return printRegressionConfidenceInterval;
}
public static void setPrintRegressionConfidenceInterval(boolean printRegressionConfidenceInterval) {
LineChartFunctionality.printRegressionConfidenceInterval = printRegressionConfidenceInterval;
}
public static boolean isPrintLiveData() {
return printLiveData;
}
public static void setPrintLiveData(boolean printLiveData) {
LineChartFunctionality.printLiveData = printLiveData;
}
public static boolean isPrintPreviousData() {
return printPreviousData;
}
public static void setPrintPreviousData(boolean printPreviousData) {
LineChartFunctionality.printPreviousData = printPreviousData;
}
public static ArrayList<XYChart.Series<String, Number>> getPreviousData() {
return previousData;
}
public static void addPreviousData(XYChart.Series<String, Number> previousData) {
LineChartFunctionality.previousData.add(previousData);
}
public static XYChart.Series<String, Number> getRegressionSeriesConfidenceInterval() {
return regressionSeriesConfidenceInterval;
}
public static void setRegressionSeriesConfidenceInterval(XYChart.Series<String, Number> regressionSeriesConfidenceInterval) {
LineChartFunctionality.regressionSeriesConfidenceInterval = regressionSeriesConfidenceInterval;
}
public static LineChart<String, Number> getLineChart() {
return lineChart;
}
public static void updateLineChart(XYChart.Series<String, Number> series) {
lineChart.getData().add(series);
series.getNode().setId("dataGraphs");
lineChart.getStylesheets().add(LineChartFunctionality.class.getResource("/com.application/GUI/graphStyles.css").toExternalForm());
}
public static void clearLineChart() {
lineChart.getData().clear();
//lineChart.getData().
}
}
......@@ -319,46 +319,72 @@ public class Main extends Application {
Label liveDataText = new Label("View Live Data");
CheckBox liveDataBox = new CheckBox();
liveDataBox.setSelected(true);
liveDataBox.setOnAction(event -> {
if(liveDataBox.isSelected()){
if(LineChartFunctionality.getLineChart().getData().contains(LineChartFunctionality.getLiveDataSeries())){
System.out.println("Pressed");
LineChartFunctionality.setPrintLiveData(true);
LineChartFunctionality.printGraphs();
System.out.println("@@@@");
LineChartFunctionality.getLiveDataSeries().getNode().setVisible(!LineChartFunctionality.getLiveDataSeries().getNode().isVisible());
} else {
}
} else {
System.out.println("not pressed");
LineChartFunctionality.setPrintLiveData(false);
LineChartFunctionality.printGraphs();
}
});
Label regressionText = new Label("View Regression");
CheckBox regressionBox = new CheckBox();
regressionBox.setSelected(true);
regressionBox.setOnAction(event -> {
if(regressionBox.isSelected()){
//System.out.println("@@@");
if(LineChartFunctionality.getLineChart().getData().contains(LineChartFunctionality.getRegressionSeries())){
System.out.println("fant series");
LineChartFunctionality.getRegressionSeries().getNode().setVisible(!LineChartFunctionality.getRegressionSeries().getNode().isVisible());
} else {
System.out.println("Pressed");
LineChartFunctionality.setPrintRegression(true);
LineChartFunctionality.printGraphs();
}
} else {
System.out.println("not pressed");
LineChartFunctionality.setPrintRegression(false);
LineChartFunctionality.printGraphs();
}
});
Label regressionConfidenceIntervalText = new Label("View Regression Shadow");
CheckBox regressionConfidenceIntervalBox = new CheckBox();
regressionConfidenceIntervalBox.setSelected(true);
regressionConfidenceIntervalBox.setOnAction(event -> {
if(regressionConfidenceIntervalBox.isSelected()){
System.out.println("Pressed");
LineChartFunctionality.setPrintRegressionConfidenceInterval(true);
LineChartFunctionality.printGraphs();
} else {
System.out.println("not pressed");
LineChartFunctionality.setPrintRegressionConfidenceInterval(false);
LineChartFunctionality.printGraphs();
}
});
Label previousText = new Label("View Previous Data");
CheckBox previousBox = new CheckBox();
previousBox.setSelected(true);
previousBox.setOnAction(event -> {
if(previousBox.isSelected()){
System.out.println("Pressed");
LineChartFunctionality.setPrintPreviousData(true);
LineChartFunctionality.printGraphs();
} else {
System.out.println("not pressed");
LineChartFunctionality.setPrintPreviousData(false);
LineChartFunctionality.printGraphs();
}
});
hBox.getChildren().addAll(liveDataText, liveDataBox, regressionText, regressionBox, previousText, previousBox);
hBox.getChildren().addAll(liveDataText, liveDataBox, regressionText, regressionBox, regressionConfidenceIntervalText, regressionConfidenceIntervalBox, previousText, previousBox);
hBox.setAlignment(Pos.CENTER_RIGHT);
hBox.setSpacing(5);
......
......@@ -11,7 +11,7 @@
.default-color0.chart-series-line{-fx-stroke: red; -fx-opacity: 1.0}
.default-color1.chart-series-line{-fx-stroke: green; -fx-opacity: 1.0}
.default-color2.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
.default-color2.chart-earlier-data-line{-fx-stroke: black; -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}
......@@ -20,7 +20,7 @@
.default-color0.chart-line-symbol{-fx-background-color: red,red;}
.default-color1.chart-line-symbol{-fx-background-color: green,green;}
.default-color2.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
.default-color2.chart-line-symbol{-fx-background-color: black,black;}
.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;}
......
......@@ -11,7 +11,7 @@
.default-color0.chart-series-line{-fx-stroke: red; -fx-opacity: 1.0}
.default-color1.chart-series-line{-fx-stroke: green; -fx-opacity: 1.0}
.default-color2.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
.default-color2.chart-earlier-data-line{-fx-stroke: black; -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}
......@@ -20,7 +20,7 @@
.default-color0.chart-line-symbol{-fx-background-color: red,red;}
.default-color1.chart-line-symbol{-fx-background-color: green,green;}
.default-color2.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
.default-color2.chart-line-symbol{-fx-background-color: black,black;}
.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;}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment