Skip to content
Snippets Groups Projects
Select Git revision
  • b414c583bd360c5d717279c52af42fce7607727d
  • main default protected
  • master
3 results

ConfirmPasswordController.php

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    InputPopUpWindow.java 10.89 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.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 {
    
        private static Thread dataThread;
    
        public static Thread getDataThread(){
            return dataThread;
        }
    
        public static void setDataThread(Thread dataThread) {
            InputPopUpWindow.dataThread = dataThread;
        }
    
        public static void exitDataThread(){
            InputPopUpWindow.dataThread.interrupt();
            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 -> {
                        // 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!!@@@@@
                        try{
                            setDataThread(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();
                                    }
                                }
                            ));
                            InputPopUpWindow.dataThread.interrupt();
                            getDataThread().setDaemon(true);
                            getDataThread().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();
        }
    
    }