From 667585fa5ee4b22216486b1ee7543246708b089f Mon Sep 17 00:00:00 2001 From: Seraina Date: Tue, 17 May 2022 18:33:57 +0200 Subject: [PATCH] Did some more styling, changed fonts ect. also moved the server notification in its one spot next to the chat, and now only the game over message is displayed --- .../dbis/cs108/multiplayer/client/Client.java | 5 +- .../client/JClientProtocolParser.java | 1 + .../client/gui/chat/ChatController.java | 54 ++++++++++++++++++- .../client/gui/game/GameController.java | 4 +- .../gui/lounge/ListOfLobbiesController.java | 4 +- .../gui/lounge/LoungeSceneViewController.java | 9 +++- .../gui/utils/ChatLabelConfigurator.java | 4 +- .../multiplayer/client/gui/chat/Chat.css | 4 ++ .../multiplayer/client/gui/chat/ChatView.fxml | 29 ++++++---- .../client/gui/lounge/LobbiesBorderPane.css | 2 +- .../client/gui/lounge/LoungeSceneView.fxml | 29 +++++----- .../client/gui/lounge/loungStyle.css | 1 + 12 files changed, 110 insertions(+), 36 deletions(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java index 7eba108..967ba52 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java @@ -430,7 +430,10 @@ public class Client { public void notificationTextDisplay(String data) { new Thread(() -> { try { - chatApp.getGameController().addMessageToNotificationText(data); + if (data.contains("Game over")) { + chatApp.getGameController().addMessageToNotificationText(data); + } + chatApp.getChatController().addChatMsgToServerView(data); Thread.sleep(5000); chatApp.getGameController().clearNotificationText(); } catch (InterruptedException e) { diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java index ff071f7..c659a29 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java @@ -42,6 +42,7 @@ public class JClientProtocolParser { System.out.println(msg.substring(6)); if (!msg.substring(6).equals("Your vote was invalid")) { c.notificationTextDisplay(msg.substring(6)); + } break; case Protocol.printToClientChat: diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/ChatController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/ChatController.java index 2c4ac6a..1ef47f3 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/ChatController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/ChatController.java @@ -22,12 +22,15 @@ import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.ScrollPane; import javafx.scene.control.TextField; +import javafx.scene.layout.AnchorPane; import javafx.scene.layout.Background; import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; +import javafx.scene.layout.Region; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.text.Text; +import javafx.scene.text.TextFlow; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -35,6 +38,15 @@ public class ChatController implements Initializable { public static final Logger LOGGER = LogManager.getLogger(ChatController.class); public static final BudaLogConfig l = new BudaLogConfig(LOGGER); + @FXML + private AnchorPane whisperAnchor; + @FXML + private AnchorPane chatinputAnchor; + + @FXML + private ScrollPane serverScrollPane; + @FXML + private VBox vBoxServer; @FXML private Group vboxGroup; @@ -110,6 +122,20 @@ public class ChatController implements Initializable { ChatScrollPane.setVvalue((Double) newValue); } }); + + vBoxServer.heightProperty().addListener(new ChangeListener<>() { + /** + * TODO: implement + * Adjust the height when new messages come in. + */ + @Override + public void changed(ObservableValue observable, Number oldValue, + Number newValue) { + vBoxServer.setMaxHeight(newValue.doubleValue()); + serverScrollPane.setMaxHeight(newValue.doubleValue() * 2); + serverScrollPane.setVvalue((Double) newValue); + } + }); /** * Initialize what happens when the send button is pressed */ @@ -187,11 +213,12 @@ public class ChatController implements Initializable { l.setMaxHeight(Double.MAX_VALUE); if (msg.contains("whispers")) { l.setBackground(Background.fill(Color.TRANSPARENT)); - l.setPrefWidth(1135); + l.setTextFill(Color.rgb(15,26,150)); + l.setPrefWidth(680); l.setScaleShape(false); } else { l.setBackground(Background.fill(Color.TRANSPARENT)); - l.setPrefWidth(1135); + l.setPrefWidth(680); l.setScaleShape(false); } l.setTextFill(Color.BLACK); @@ -203,4 +230,27 @@ public class ChatController implements Initializable { }); } + + public void addChatMsgToServerView(String msg) { + TextFlow textFlow = new TextFlow(); + textFlow.setPrefWidth(420); + textFlow.setPrefHeight(Region.USE_COMPUTED_SIZE); + Text text = new Text(msg); + textFlow.getChildren().add(text); + try { + Platform.runLater(new Runnable() { + @Override + public void run() { + try { + vBoxServer.getChildren().add(textFlow); + } catch (Exception e) { + LOGGER.warn(e.getMessage()); + } + } + }); + } catch(Exception e) { + LOGGER.warn(e.getMessage()); + } + } + } 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 833db14..f52e47b 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 @@ -381,8 +381,8 @@ public class GameController implements Initializable { public void addMessageToNotificationText(String msg) { LOGGER.trace("addMessage " + msg); Text notification = new Text(System.lineSeparator() + msg); - notification.setFill(Color.BLACK); - notification.setStyle("-fx-font: 50 arial;"); + notification.setFill(Color.WHITE); + notification.setStyle("-fx-font: 50 serif;"); try { Platform.runLater(new Runnable() { @Override diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/ListOfLobbiesController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/ListOfLobbiesController.java index df13437..54f8bda 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/ListOfLobbiesController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/ListOfLobbiesController.java @@ -89,10 +89,10 @@ public class ListOfLobbiesController implements Initializable { HBox rootHBox = new HBox(); rootHBox.setPrefWidth(195); rootHBox.setMaxHeight(20); - Label adminLabel = new Label(lobbyId + " " + admin); + Label adminLabel = new Label(" Lobby " + lobbyId + ": " + admin); adminLabel.setTextFill(Color.WHITE); - rootHBox.getChildren().add(adminLabel); rootHBox.getChildren().add(button); + rootHBox.getChildren().add(adminLabel); TreeItem root = new TreeItem(rootHBox); root.setExpanded(true); for (String member : members) { 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 8739727..37ded19 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 @@ -35,8 +35,10 @@ import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; +import javafx.scene.layout.TilePane; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; +import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.scene.text.TextFlow; import javafx.util.Duration; @@ -48,6 +50,10 @@ public class LoungeSceneViewController implements Initializable { public static final Logger LOGGER = LogManager.getLogger(LoungeSceneViewController.class); public static final BudaLogConfig l = new BudaLogConfig(LOGGER); @FXML + private AnchorPane highScorePane; + @FXML + private TilePane listTilePane; + @FXML private AnchorPane gameDisplayAnchorPane; @FXML private AnchorPane listLobbyAnchorPane; @@ -309,7 +315,8 @@ public class LoungeSceneViewController implements Initializable { for (String argument : arguments) { LOGGER.debug("HighScore " + argument); Text text = new Text(argument + System.lineSeparator()); - text.setFill(Color.BLACK); + text.setFill(Color.WHITE); + text.setFont(new Font("serif",15)); highScore.getChildren().add(text); } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/utils/ChatLabelConfigurator.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/utils/ChatLabelConfigurator.java index f2fa9fe..445d061 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/utils/ChatLabelConfigurator.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/utils/ChatLabelConfigurator.java @@ -28,7 +28,7 @@ public class ChatLabelConfigurator { l.setAlignment(Pos.CENTER_RIGHT); l.setWrapText(true); l.setMaxHeight(Double.MAX_VALUE); - l.setPrefWidth(1135); + l.setPrefWidth(680); l.setScaleShape(false); } else { //t = new Text(client.getUsername() + " (you): " + msg); @@ -37,7 +37,7 @@ public class ChatLabelConfigurator { l.setAlignment(Pos.CENTER_RIGHT); l.setWrapText(true); l.setMaxHeight(Double.MAX_VALUE); - l.setPrefWidth(1135); + l.setPrefWidth(680); l.setScaleShape(false); } return l; diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/Chat.css b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/Chat.css index 996b07e..bf37ff1 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/Chat.css +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/Chat.css @@ -3,6 +3,10 @@ -fx-background-color: transparent; } +.text-flow{ + -fx-text-alignment: center; +} + #vBoxChatMessages{ -fx-background-color: transparent; } 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 d0dc006..bc38e85 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 @@ -4,6 +4,7 @@ + @@ -14,16 +15,17 @@ - + - + + - + @@ -32,18 +34,18 @@ - + - + - + - + - - - + + + @@ -61,7 +63,7 @@ - + @@ -108,5 +110,10 @@ + + + + + diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LobbiesBorderPane.css b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LobbiesBorderPane.css index 2dc7e85..4cf3957 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LobbiesBorderPane.css +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LobbiesBorderPane.css @@ -15,7 +15,7 @@ -fx-background-color: rgb(15,26,59,0.8); } -#highScore{ +#highScorePane{ -fx-background-color: rgb(15,26,59,0.8); -fx-text-fill: white; -fx-font-family: serif; 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 cb75de0..3855bc6 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 @@ -22,22 +22,22 @@ - + - + - + - +
- + @@ -45,20 +45,21 @@ - - - - - -
- + - +
+ + + + + + +
diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/loungStyle.css b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/loungStyle.css index ca9ae05..8c1daff 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/loungStyle.css +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/loungStyle.css @@ -1,5 +1,6 @@ *{ -fx-font-family: serif; + -fx-font-size: 15; }