Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package view;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Random;
- import java.util.Timer;
- import java.util.TimerTask;
- import controller.databaseConnection;
- import javafx.collections.ObservableList;
- import javafx.event.ActionEvent;
- import javafx.event.EventHandler;
- import javafx.geometry.Insets;
- import javafx.scene.Scene;
- import javafx.scene.control.Button;
- import javafx.scene.control.ComboBox;
- import javafx.scene.control.Label;
- import javafx.scene.layout.Background;
- import javafx.scene.layout.BackgroundFill;
- import javafx.scene.layout.CornerRadii;
- import javafx.scene.layout.Pane;
- import javafx.scene.layout.VBox;
- import javafx.scene.paint.Color;
- import javafx.scene.text.Font;
- import javafx.scene.text.Text;
- import javafx.stage.Stage;
- public class ChallengeScreen extends Gui {
- Pane challengePane = new Pane();
- Scene challengeScene = new Scene(challengePane, 400, 800);
- private Stage primaryStage;
- private ArrayList<String> players = new ArrayList<>(); // for testing JM
- private databaseConnection dbcon = new databaseConnection("jdbc:mysql://databases.aii.avans.nl/sficken_db",
- "sficken", "Ab12345");
- private ArrayList<ComboBox<String>> comboBoxes = new ArrayList<>();
- private ArrayList<Button> buttons = new ArrayList<>();
- private ArrayList<String> playersInGame = new ArrayList<>();
- private ArrayList<String> occupiedPlayers = new ArrayList<>();
- private ArrayList<String> invitedPlayers = new ArrayList<>();
- private int gameID;
- private Button finishButton;
- private boolean[] playersSet = new boolean[3];
- private Timer timer;
- private TimerTask timerTask;
- private Button backButton;
- public ChallengeScreen(Stage primaryStage) {
- this.primaryStage = primaryStage;
- }
- public void makeChallengeScreen() {
- setUpScene();
- makeBackButton();
- makeTitleLabel();
- makeComboBoxes();
- primaryStage.show(); // for testing, remove when finished JM
- }
- private void setUpScene() {
- primaryStage.setTitle("Spelers uitdagen");
- primaryStage.centerOnScreen();
- challengeScene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
- challengePane.getStyleClass().add("pane");
- primaryStage.setScene(challengeScene);
- primaryStage.setResizable(false);
- }
- private void makeBackButton() {
- backButton = new Button("Terug");
- backButton.setPrefHeight(50);
- backButton.setPrefWidth(150);
- backButton.setTranslateX(0);
- backButton.setTranslateY(0);
- challengePane.getChildren().add(backButton);
- backButton.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent event) {
- MainMenuScreen screen = new MainMenuScreen();
- screen.makeMainMenuScreen(primaryStage);
- }
- });
- }
- private void makeTitleLabel() {
- Label titelLabel = new Label("Spelers uitdagen");
- titelLabel.setTranslateX(170);
- titelLabel.setTranslateY(12.5);
- titelLabel.setFont(Font.font("Arial", 28));
- titelLabel.setTextFill(Color.WHITESMOKE);
- challengePane.getChildren().add(titelLabel);
- }
- private void makeComboBoxes() {
- if (!dbcon.select(
- "SELECT idspel FROM speler WHERE username = '" + player.getName() + "' AND speelstatus = 'uitdager'",
- "idspel").isEmpty()) {
- for (int i = 0; i < (dbcon.select("SELECT idspel FROM speler WHERE username = '" + player.getName()
- + "' AND speelstatus = 'uitdager'", "idspel").size()); i++) {
- occupiedPlayers.addAll(
- dbcon.select("SELECT username FROM speler WHERE speelstatus = 'uitgedaagde' AND idspel = "
- + dbcon.select("SELECT idspel FROM speler WHERE username = '" + player.getName()
- + "' AND speelstatus = 'uitdager'", "idspel").get(i),
- "username"));
- }
- // adds all occupied players to the arraylist of occupied players
- }
- // for testing purposes
- // ArrayList<String> playersInGame = new ArrayList<>();
- // ArrayList<ComboBox<String>> comboBoxes = new ArrayList<>();
- // ArrayList<Button> buttons = new ArrayList<>();
- players.addAll(dbcon.select("SELECT username FROM account ", "username"));
- // System.out.println("players: " + players);
- // System.out.println(occupiedPlayers);
- //
- // for (int y = 0; y < dbcon.select("SELECT username FROM speler",
- // "username").size(); y++) {
- // for (int i = 0; i < occupiedPlayers.size(); i++) {
- // if (occupiedPlayers.get(i).equals(dbcon.select("SELECT username FROM
- // speler", "username").get(y))) {
- // // players.add(dbcon.select("SELECT username FROM account",
- // // "").get(i));
- // System.out.println("We zijn er!");
- // players.remove(dbcon.select("SELECT username FROM account",
- // "username").get(i));
- // // players.addAll(dbcon.select("SELECT username FROM account
- // // ", "username"));
- // }
- // }
- // }
- ArrayList<String> tempGameIDs = dbcon.select(
- "SELECT idspel FROM speler WHERE username = '" + player.getName() + "' AND speelstatus = 'uitdager';",
- "idspel");
- for (String gameID : tempGameIDs) {
- occupiedPlayers.addAll(dbcon.select(
- "SELECT username, idspel FROM speler WHERE idspel = " + gameID + " AND speelstatus = 'uitgedaagde'",
- "username"));
- }
- occupiedPlayers.add(player.getName());
- players.removeAll(occupiedPlayers);
- System.out.println("players: " + players);
- System.out.println("occupiedPlayers: " + occupiedPlayers);
- VBox vbBoxes = new VBox();
- vbBoxes.setTranslateX(20);
- vbBoxes.setTranslateY(100);
- challengePane.getChildren().add(vbBoxes);
- for (int i = 0; i < 3; i++) {
- comboBoxes.add(makeComboBox(i * 100));
- vbBoxes.getChildren().add(comboBoxes.get(i));
- }
- for (int i = 0; i < 3; i++) {
- buttons.add(makeSetButton(i));
- vbBoxes.getChildren().add(buttons.get(i));
- }
- setTransXY(buttons.get(0), 310, -120);
- setTransXY(buttons.get(1), 310, -19);
- setTransXY(buttons.get(2), 310, 82);
- finishButton = new Button("BEGINNEN!");
- finishButton.setDisable(true);
- finishButton.setTranslateX(-20);
- finishButton.setTranslateY(360);
- finishButton.setPrefHeight(100);
- finishButton.setPrefWidth(400);
- vbBoxes.getChildren().add(finishButton);
- finishButton.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent event) {
- backButton.setDisable(true);
- finishButton.setDisable(true);
- for (ComboBox<String> box : comboBoxes) {
- invitedPlayers.add(box.getValue());
- }
- gameID = (Integer.parseInt(dbcon.select("SELECT MAX(idspel) FROM spel", "MAX(idspel)").get(0)) + 1);
- dbcon.insert("INSERT INTO spel (idspel) VALUES (" + gameID + ");");
- dbcon.insert("INSERT INTO speler (idspel, username, kleur, speelstatus, volgnr) VALUES (" + gameID
- + ", '" + comboBoxes.get(0).getValue().toString() + "', 'wit', 'uitgedaagde', 2)");
- dbcon.insert("INSERT INTO speler (idspel, username, kleur, speelstatus, volgnr) VALUES (" + gameID
- + ", '" + comboBoxes.get(1).getValue().toString() + "', 'blauw', 'uitgedaagde', 3)");
- dbcon.insert("INSERT INTO speler (idspel, username, kleur, speelstatus, volgnr) VALUES (" + gameID
- + ", '" + comboBoxes.get(2).getValue().toString() + "', 'oranje', 'uitgedaagde', 4)");
- dbcon.insert("INSERT INTO speler (idspel, username, kleur, speelstatus, volgnr) VALUES (" + gameID
- + ", '" + player.getName() + "', 'rood', 'uitdager', 1)");
- startTimer();
- }
- });
- for (int i = 0; i < playersInGame.size(); i++) {
- if (dbcon.select("SELECT speelstatus FROM speler WHERE username = '" + playersInGame.get(i) + "'",
- "speelstatus").get(0).equals("gereed")) {
- buttons.get(i).getStyleClass().add("buttonGreen");
- comboBoxes.get(i).getStyleClass().add("comboBoxGreen");
- }
- }
- // comboBoxes.get(0).setStyle("-fx-background-color: green");
- // comboBoxes.get(0).setDisable(true);
- // comboBoxes.get(0).setStyle("-fx-background-color: red");
- }
- private void startTimer() {
- HashMap<String, String> playerStatus = new HashMap<>();
- timer = new Timer();
- timerTask = new TimerTask() {
- @Override
- public void run() {
- ArrayList<String> usernames = dbcon.select("SELECT * FROM speler WHERE idspel = " + gameID + ";",
- "username");
- ArrayList<String> status = dbcon.select("SELECT * FROM speler WHERE idspel = " + gameID + ";",
- "speelstatus");
- boolean[] acceptedChallenges = new boolean[playerStatus.size()];
- boolean tempBoolean = false;
- for (int i = 0; i < usernames.size(); i++) {
- playerStatus.put(usernames.get(i), status.get(i));
- }
- for (int i = 0; i < comboBoxes.size(); i++) {
- if (playerStatus.get(usernames.get(i)).equals("geweigerd")) {
- comboBoxes.get(i).setStyle("-fx-background-color: red");
- acceptedChallenges[i] = false;
- } else if (playerStatus.get(usernames.get(i)).equals("geaccepteerd")) {
- comboBoxes.get(i).setStyle("-fx-background-color: green");
- acceptedChallenges[i] = true;
- // System.out.println("Geaccepteerd");
- }
- }
- for (boolean accept : acceptedChallenges) {
- if (!accept) {
- return;
- }
- tempBoolean = accept;
- if (tempBoolean) {
- timer.cancel();
- }
- }
- }
- };
- timer.scheduleAtFixedRate(timerTask, 0, 1000);
- }
- private void removePlayer(ComboBox<String> box) {
- players.remove(box.getValue());
- playersInGame.remove(box.getValue());
- for (int i = 0; i < comboBoxes.size(); i++) {
- if (box != comboBoxes.get(i)) {
- comboBoxes.get(i).getItems().remove(box.getValue());
- }
- }
- }
- private void addPlayer(ComboBox<String> selectedBox) {
- players.add(selectedBox.getValue());
- for (ComboBox<String> box : comboBoxes) {
- if (selectedBox != box) {
- box.getItems().add(selectedBox.getValue());
- Collections.sort(box.getItems());
- }
- }
- }
- // private void addPlayer(ComboBox<String> box){
- // players.add(box.getValue());
- // for(int i = 0 ; i < comboBoxes.size(); i++){
- // if(box != comboBoxes.get(i)){
- // comboBoxes.get(i).getItems().add(box.getValue());
- // }
- // }
- // }
- private void doSelectButton(ComboBox<String> box, Button button, ArrayList<String> playersInGame, int i) {
- if (!box.isDisabled()) {
- button.setText("X");
- playersInGame.add(box.getValue());
- box.setDisable(true);
- // dbcon.insert("UPDATE speler SET speelstatus = 'uitgedaagde' WHERE
- // username = '" + box.getValue().toString() + "'");
- removePlayer(box);
- playersSet[i] = true;
- } else {
- box.setDisable(true);
- playersInGame.remove(box.getValue());
- button.setText("+");
- box.setDisable(false);
- addPlayer(box);
- playersSet[i] = false;
- }
- }
- private ComboBox<String> makeComboBox(double transY) {
- ComboBox<String> box = new ComboBox<>();
- box.getItems().addAll(players);
- box.setPromptText("Gebruikersnaam");
- // vbBoxes.getChildren().add(box1);
- box.getStyleClass().add("comboBox");
- box.setTranslateY(transY);
- box.setPrefHeight(20);
- box.setPrefWidth(280);
- return box;
- }
- private Button makeSetButton(int i) {
- Button btn = new Button("+");
- btn.getStyleClass().add("setButton");
- // vbBoxes.getChildren().add(setButton4);
- // buttons.add(setButton4);
- btn.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent event) {
- doSelectButton(comboBoxes.get(i), btn, playersInGame, i);
- updateFinishButton();
- }
- });
- return btn;
- }
- private void updateFinishButton() {
- boolean tempBool = false;
- for(boolean set : playersSet){
- }
- finishButton.setDisable(!tempBool);
- }
- private void setTransXY(Button btn, double x, double y) {
- btn.setTranslateX(x);
- btn.setTranslateY(y);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement