From f16d87f8d34b18d2ad2e3d95dee2386f73df2228 Mon Sep 17 00:00:00 2001 From: Seraina Date: Sun, 1 May 2022 14:42:10 +0200 Subject: [PATCH] Added the chat to the lobby view, isnt resizable yet but works just fine --- .../gamelogic/ServerGameInfoHandler.java | 2 + .../cs108/multiplayer/client/gui/ChatApp.java | 1 - .../gui/lounge/LoungeSceneViewController.java | 64 ++++++++++++------- .../multiplayer/client/gui/chat/ChatView.fxml | 22 +++---- .../client/gui/lounge/LoungeSceneView.fxml | 15 +++-- 5 files changed, 65 insertions(+), 39 deletions(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/ServerGameInfoHandler.java b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/ServerGameInfoHandler.java index 2edb598..4347775 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/ServerGameInfoHandler.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/ServerGameInfoHandler.java @@ -31,9 +31,11 @@ public class ServerGameInfoHandler { switch (msg) { case ClientGameInfoHandler.ghostVoteRequest: msg = Protocol.serverRequestsGhostVote + "$" + passenger.getPosition() + "$"; + passenger.getClientHandler().sendMsgToClient(Protocol.printToClientConsole + "$" + ClientGameInfoHandler.ghostVoteRequest); break; case ClientGameInfoHandler.humanVoteRequest: msg = Protocol.serverRequestsHumanVote + "$" + passenger.getPosition() + "$"; + passenger.getClientHandler().sendMsgToClient(Protocol.printToClientConsole + "$" + ClientGameInfoHandler.humanVoteRequest); break; default: if(!msg.contains("$")) { diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/ChatApp.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/ChatApp.java index 9413cc1..1725a05 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/ChatApp.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/ChatApp.java @@ -129,7 +129,6 @@ public class ChatApp extends Application { public void start(Stage primaryStage) throws Exception { this.setcModel(clientModel); this.setGameC(gameController); - gameC.setClient(cModel); gameC.setGameStateModel(GameController.getGameStateModel()); try { diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java index f538efe..1334dda 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java @@ -33,6 +33,7 @@ import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.ListCell; import javafx.scene.control.ListView; +import javafx.scene.control.SplitPane; import javafx.scene.control.TextField; import javafx.scene.control.TitledPane; import javafx.scene.control.ToolBar; @@ -48,6 +49,13 @@ public class LoungeSceneViewController implements Initializable { public static final Logger LOGGER = LogManager.getLogger(LoungeSceneViewController.class); public static final BudaLogConfig l = new BudaLogConfig(LOGGER); + @FXML + private SplitPane chatSplitPane; + @FXML + private AnchorPane chatAnchorPane; + @FXML + private AnchorPane otherNotificationAnchorPane; + @FXML private Button leaveLobbyButton; @FXML @@ -67,8 +75,6 @@ public class LoungeSceneViewController implements Initializable { @FXML private AnchorPane ChatArea; @FXML - private HBox ChatAreaHBox; - @FXML private BorderPane LoungeSceneBorderPane; @FXML private ToolBar NTtBToolBar; @@ -110,20 +116,21 @@ public class LoungeSceneViewController implements Initializable { LobbyListView.setVisible(true); ClientListView.setVisible(true); ClientListView.setItems(client.getAllClients()); + addChatView(); LobbyListView.setPlaceholder(new Text("No open lobbies!")); client.getAllClients().addListener(new ListChangeListener() { @Override public void onChanged(Change c) { List removed = (List) c.getRemoved(); - for(SimpleStringProperty player: removed) { + for (SimpleStringProperty player : removed) { } } }); } - public void addGameView(){ - Platform.runLater(new Runnable(){ + public void addGameView() { + Platform.runLater(new Runnable() { @Override public void run() { try { @@ -137,7 +144,7 @@ public class LoungeSceneViewController implements Initializable { }); } - public void removeGameView(){ + public void removeGameView() { Platform.runLater(new Runnable() { @Override public void run() { @@ -152,6 +159,19 @@ public class LoungeSceneViewController implements Initializable { }); } + public void addChatView() { + Platform.runLater(new Runnable() { + @Override + public void run() { + try { + chatAnchorPane.getChildren().add(chatApp.chat); + } catch (Exception e) { + LOGGER.debug("Not yet initialized: chatAnchorPane"); + } + } + }); + } + public void updateClientListView(ObservableList names) { ObservableList clientsLeft = ClientListView.getItems(); clientsLeft.removeAll(names); @@ -162,8 +182,8 @@ public class LoungeSceneViewController implements Initializable { } /** - * Adds players to a lobby - * "NMEMB" {@link ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters} + * Adds players to a lobby "NMEMB" {@link ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters} + * * @param lobbyID * @param player */ @@ -173,8 +193,9 @@ public class LoungeSceneViewController implements Initializable { } /** - * Used when a new lobby shall be added to the view. - * "NLOBBY" {@link ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters} + * Used when a new lobby shall be added to the view. "NLOBBY" {@link + * ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters} + * * @param lobbyID * @param adminName */ @@ -223,12 +244,18 @@ public class LoungeSceneViewController implements Initializable { //addGameView(); } - public void leaveLobby() {client.getClient().sendMsgToServer(Protocol.leaveLobby);} + public void leaveLobby() { + client.getClient().sendMsgToServer(Protocol.leaveLobby); + removeGameView(); + } + + public void leaveServer() { + client.getClient().sendMsgToServer(Protocol.clientQuitRequest); + } - public void leaveServer() {client.getClient().sendMsgToServer(Protocol.clientQuitRequest);} /** - * Used to add a new player to the list of players. - * "NPLOS" {@link ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters} + * Used to add a new player to the list of players. "NPLOS" {@link ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters} + * * @param s */ public void addClientToList(String s) { @@ -272,12 +299,5 @@ public class LoungeSceneViewController implements Initializable { public static void setClient(ClientModel client) { LoungeSceneViewController.client = client; } - - public HBox getChatAreaHBox() { - return ChatAreaHBox; - } - - public void setChatAreaHBox(HBox chatAreaHBox) { - ChatAreaHBox = chatAreaHBox; - } } + diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/ChatView.fxml b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/ChatView.fxml index 52b6d92..1565d1a 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/ChatView.fxml +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/ChatView.fxml @@ -12,9 +12,9 @@ - + - + @@ -34,19 +34,19 @@ - + - - - + + + - + - @@ -57,7 +57,7 @@ - + @@ -65,7 +65,7 @@ - + @@ -86,7 +86,7 @@ - + diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml index 24670cd..81237cc 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml @@ -2,10 +2,10 @@ + - @@ -22,16 +22,21 @@
-
- + - + + + + + +