Something went wrong on our end
-
Eilert Tunheim authoredEilert Tunheim authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
InputPopUpWindow.java 11.77 KiB
package com.application.GUI;
import javafx.application.Platform;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Pos;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.*;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import static com.application.DB.Constants.*;
import static com.application.DB.DB.getCurrentDrying;
import static com.application.Main.*;
import static com.application.DB.DB.setInputParameters;
import static com.application.GUI.LineChartFunctionality.loadSingleSeries;
/**
* This class handles the popup input window
*
* @author Eilert Tunheim, Karin Pettersen, Mads Arnesen
* @version 1.0
*/
public class InputPopUpWindow {
public static void exitDataThread(){
Platform.exit();
System.exit(0);
}
public static void display() {
Stage window = new Stage();
window.initModality(Modality.APPLICATION_MODAL);
window.setTitle("Input Parameters");
// Top
Label inputLabel= new Label("Input");
inputLabel.setId("inputTop");
// Center - Input fields
// Tree species
Label treeSpeciesInputLabel = new Label("Tree Species");
treeSpeciesInputLabel.setId("inputLabel");
ObservableList<String> treeSpecies = FXCollections.observableArrayList(
"Furu",
"Gran"
);
ComboBox<String> treeSpeciesList = new ComboBox<>(treeSpecies);
treeSpeciesList.setPromptText("Select Tree Species");
treeSpeciesList.setId("inputDropDownBox");
treeSpeciesList.setEditable(true);
// Dimensions
Label dimensionsInputLabel = new Label("Dimensions");
dimensionsInputLabel.setId("inputLabel");
ObservableList<String> dimensions = FXCollections.observableArrayList(
"47x150",
"47x175",
"47x200",
"47x225",
"47x250",
"50x150",
"50x175",
"50x200",
"50x225",
"50x250"
);
ComboBox<String> dimensionsList = new ComboBox<>(dimensions);
dimensionsList.setPromptText("Select Dimensions");
dimensionsList.setId("inputDropDownBox");
dimensionsList.setEditable(true);
// Sawset
Label sawsetInputLabel = new Label("Sawset");
sawsetInputLabel.setId("inputLabel");
ObservableList<String> sawset = FXCollections.observableArrayList(
"1ex",
"2ex",
"3ex",
"4ex"
);
ComboBox<String> sawsetList = new ComboBox<>(sawset);
sawsetList.setPromptText("Select Dimensions");
sawsetList.setId("inputDropDownBox");
sawsetList.setEditable(true);
// Moisture
Label moistureGoalInputLabel = new Label("Moisture Goal");
moistureGoalInputLabel.setId("inputLabel");
ObservableList<String> moistureGoal = FXCollections.observableArrayList(
"10%",
"12%",
"14%",
"16%",
"18%",
"20%"
);
ComboBox<String> moistureList = new ComboBox<>(moistureGoal);
moistureList.setPromptText("Select Dimensions");
moistureList.setId("inputDropDownBox");
moistureList.setEditable(true);
// Bottom - start button
Button startButton = new Button("Start");
startButton.setId("inputButtonStart");
startButton.setOnAction(e -> {
// Sets the start time
START_TIME = TODAYS_DATE;
// Retrieves the user inputs
TREE_SPECIES = treeSpeciesList.getValue();
DIMENSIONS = dimensionsList.getValue();
SAWSET = sawsetList.getValue();
if(moistureList.getValue() != null && moistureList.getValue().contains("%"))
{
MOISTURE_GOAL = moistureList.getValue().replace("%","");
} else {
MOISTURE_GOAL = moistureList.getValue();
}
// If the input is null, sets the value to be empty
if (treeSpeciesList.getValue() == null) {
TREE_SPECIES = "";
}
if (dimensionsList.getValue() == null) {
DIMENSIONS = "";
}
if (sawsetList.getValue() == null) {
SAWSET = "";
}
if (moistureList.getValue() == null) {
MOISTURE_GOAL = "";
}
setTreeSpeciesText(TREE_SPECIES);
setDimensionsText(DIMENSIONS);
setSawsetText(SAWSET);
setMoistureGoalText(MOISTURE_GOAL);
window.close();
/*
FutureTask[] randomNumberTasks = new FutureTask[1];
Callable callable = new CallableExample();
randomNumberTasks[0] = new FutureTask(callable);
Thread t = new Thread(randomNumberTasks[0]);
t.start();
try {
System.out.println(randomNumberTasks[0].get());
} catch (InterruptedException | ExecutionException ex) {
ex.printStackTrace();
}
});
*/
/*
try {
//getData();
loadSingleSeries(setInputParameters());
//loadMultipleSeries(setInputParameters());
//loadSingleSeries();
//loadMultipleSeries();
} catch (Exception ex) {
ex.printStackTrace();
}
}
);
*/
/*
try{
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
// Henter her data fra databasen
loadSingleSeries(setInputParameters(false,false,false,false));
//loadSingleSeries();
//loadMultipleSeries();
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
thread.start();
} catch (Exception ex) {
ex.printStackTrace();
}
}
);
*/
// Fungerende ny thread!!@@@@@
// Gather data
try{
Thread thread = new Thread(() -> {
try {
// Henter her data fra databasen
Map<Integer, Map<String, Number>> data = setInputParameters();
Platform.runLater(() -> {
try {
loadSingleSeries(data);
} catch (Exception ex) {
ex.printStackTrace();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
);
thread.setDaemon(true);
thread.start();
} catch (Exception ex) {
ex.printStackTrace();
}
// Retrieve data for current drying period
try{
Thread thread = new Thread(() -> {
try {
// Henter her data fra databasen
Map<String, Number> data = getCurrentDrying();
Platform.runLater(() -> {
try {
//loadSingleSeries(data);
} catch (Exception ex) {
ex.printStackTrace();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
);
thread.setDaemon(true);
thread.start();
} catch (Exception ex) {
ex.printStackTrace();
}
}
);
/*
// Fungerende ny thread!!@@@@@
try{
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
// Henter her data fra databasen
loadSingleSeries(setInputParameters());
//loadSingleSeries();
//loadMultipleSeries();
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
thread.start();
} catch (Exception ex) {
ex.printStackTrace();
}
}
);
*/
/*
class KwhThread implements Runnable {
Map<Integer, Map<String, Number>> dataVariable;
private volatile boolean finished;
@Override
public void run() {
try{
dataVariable = setInputParameters();
} catch (Exception ex) {
ex.printStackTrace();
}
finished = true;
synchronized (this){
this.notify();
}
}
public Map<Integer, Map<String, Number>> getDataVariable() throws InterruptedException {
synchronized (this){
if(!finished)
this.wait();
}
return dataVariable;
}
}
KwhThread kwhThread = new KwhThread();
Thread thread = new Thread(kwhThread);
thread.setName("GetKwhThread");
thread.start();
try {
loadSingleSeries(kwhThread.getDataVariable());
} catch (Exception ex) {
ex.printStackTrace();
}
*/
/*
*/
VBox layout = new VBox(10);
layout.getChildren().addAll(inputLabel, treeSpeciesInputLabel, treeSpeciesList, dimensionsInputLabel, dimensionsList,
sawsetInputLabel, sawsetList, moistureGoalInputLabel, moistureList, startButton);
layout.setAlignment(Pos.CENTER);
Scene scene = new Scene(layout, 600, 500);
scene.getStylesheets().add(InputPopUpWindow.class.getResource("/com.application/CSS/styleSheet.css").toExternalForm());
window.setScene(scene);
window.showAndWait();
}
}