diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java index 163bd1c..9e48add 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java @@ -1,17 +1,44 @@ package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.game; +import javafx.event.EventHandler; +import ch.unibas.dmi.dbis.cs108.BudaLogConfig; +import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ClientModel; +import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.Protocol; +import java.net.URL; +import java.util.ResourceBundle; +import javafx.application.Platform; +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; +import javafx.collections.ListChangeListener; +import javafx.event.ActionEvent; +import javafx.event.EventHandler; import javafx.fxml.FXML; +import javafx.fxml.Initializable; import javafx.scene.Group; +import javafx.scene.Node; import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.SplitPane; +import javafx.scene.control.TextArea; import javafx.scene.control.TextField; +import javafx.scene.layout.AnchorPane; +import javafx.scene.layout.Background; import javafx.scene.layout.HBox; +import javafx.scene.layout.Pane; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.text.Text; import javafx.scene.text.TextFlow; public class GameController { + private static ClientModel client; + + @FXML + private AnchorPane gameBG; @FXML private Group roomButtonGroupDay; - @FXML private Button buttonRoom0; @FXML @@ -28,22 +55,97 @@ public class GameController { @FXML private HBox roomLables; @FXML - private TextField lableRoom0; + private TextFlow lableRoom0; @FXML - private TextField lableRoom1; + private TextFlow lableRoom1; @FXML - private TextField lableRoom2; + private TextFlow lableRoom2; @FXML - private TextField lableRoom3; + private TextFlow lableRoom3; @FXML - private TextField lableRoom4; + private TextFlow lableRoom4; @FXML - private TextField lableRoom5; + private TextFlow lableRoom5; @FXML private Button noiseButton; @FXML private TextFlow notificationText; + /** + * If button 0 is clicked, send the vote message 0 to the server + */ + public void sendVote0() { + client.getClient() + .sendMsgToServer(Protocol.votedFor + "$" + client.getClient().getPosition() + 0); + } + + /** + * If button 1 is clicked, send the vote message 0 to the server + */ + public void sendVote1() { + client.getClient() + .sendMsgToServer(Protocol.votedFor + "$" + client.getClient().getPosition() + 1); + } + + /** + * If button 2 is clicked, send the vote message 0 to the server + */ + public void sendVote2() { + client.getClient() + .sendMsgToServer(Protocol.votedFor + "$" + client.getClient().getPosition() + 2); + } + + /** + * If button 3 is clicked, send the vote message 0 to the server + */ + public void sendVote3() { + client.getClient() + .sendMsgToServer(Protocol.votedFor + "$" + client.getClient().getPosition() + 3); + } + + /** + * If button 4 is clicked, send the vote message 0 to the server + */ + public void sendVote4() { + client.getClient() + .sendMsgToServer(Protocol.votedFor + "$" + client.getClient().getPosition() + 4); + } + + /** + * If button 5 is clicked, send the vote message 0 to the server + */ + public void sendVote5() { + client.getClient() + .sendMsgToServer(Protocol.votedFor + "$" + client.getClient().getPosition() + 5); + } + + /** + * Sends a noise message, to the server, should be a gui message? + */ + public void noise() { + client.getClient().sendMsgToServer("noise"); //TODO: Add message + } + + /** + * Takes a given message and displays it in the notificationText Flow in the game Scene + * @param msg the message to be displayed + */ + public void addMessageToNotificationText(String msg) { + Text notification = new Text(msg); + notificationText.getChildren().clear(); + notificationText.getChildren().add(notification); + //TODO: Wait for a certain time, then clear all again + } + + /** + * Adds a msg to the room Lable at the specified position + * @param names a String array containing all the names + */ + public void addRoomLabels(String[] names) { + + } + + } diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDay.css b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDay.css index 9121bda..f02fda2 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDay.css +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDay.css @@ -1,10 +1,10 @@ *{ + } .button{ } - .roomButtonGroup{ -fx-background-color: transparent; } diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDayAll.fxml b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDayAll.fxml index 6e6fd8c..a08b086 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDayAll.fxml +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDayAll.fxml @@ -2,7 +2,6 @@ - @@ -10,119 +9,98 @@ - + - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - +