From cf52d293a4fbc61353f298c2946c5da3d63d199b Mon Sep 17 00:00:00 2001 From: Jona Walpert Date: Thu, 30 Apr 2026 11:35:34 +0200 Subject: [PATCH] Feat: Add sounds to chat UI --- .../client/ui/chatui/ChatBoxController.java | 40 +++++++++++-------- .../client/ui/chatui/ChatViewController.java | 2 + 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/chatui/ChatBoxController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/chatui/ChatBoxController.java index 897bc04..ceae38c 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/chatui/ChatBoxController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/chatui/ChatBoxController.java @@ -5,6 +5,7 @@ import ch.unibas.dmi.dbis.cs108.casono.client.chat.ChatController.ChatKey; import ch.unibas.dmi.dbis.cs108.casono.client.chat.ChatModel; import ch.unibas.dmi.dbis.cs108.casono.client.chat.ChatType; import ch.unibas.dmi.dbis.cs108.casono.client.chat.Message; +import ch.unibas.dmi.dbis.cs108.casono.ui.sound.SoundManager; import java.io.IOException; import java.net.URL; import java.util.ArrayList; @@ -70,7 +71,11 @@ public class ChatBoxController { ChatModel globalChatModel = new ChatModel(global, username, -1, null); chatController.getChatModelMap().put(new ChatController.ChatKey(global), globalChatModel); addChatTab("GLOBAL", globalChatModel, global); - addWhisperChatButton.setOnAction(_ -> addWhisperChatButton.show()); + addWhisperChatButton.setOnAction( + _ -> { + SoundManager.getInstance().playButtonClick(); + addWhisperChatButton.show(); + }); } /** @@ -90,14 +95,13 @@ public class ChatBoxController { MenuItem menuItem = new MenuItem(targetUserName); addWhisperChatButton.getItems().add(menuItem); menuItem.setOnAction( - _ -> - addWhisperChat( - targetUserName, - new ChatModel( - ChatType.WHISPER, - username, - -1, - targetUserName))); + _ -> { + SoundManager.getInstance().playButtonClick(); + addWhisperChat( + targetUserName, + new ChatModel( + ChatType.WHISPER, username, -1, targetUserName)); + }); }); } @@ -124,14 +128,16 @@ public class ChatBoxController { if (oldUsername.equals(item.getText())) { item.setText(newUsername); item.setOnAction( - _ -> - addWhisperChat( - newUsername, - new ChatModel( - ChatType.WHISPER, - username, - -1, - newUsername))); + _ -> { + SoundManager.getInstance().playButtonClick(); + addWhisperChat( + newUsername, + new ChatModel( + ChatType.WHISPER, + username, + -1, + newUsername)); + }); break; } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/chatui/ChatViewController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/chatui/ChatViewController.java index fc9bff8..7b0593f 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/chatui/ChatViewController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/chatui/ChatViewController.java @@ -3,6 +3,7 @@ package ch.unibas.dmi.dbis.cs108.casono.client.ui.chatui; import ch.unibas.dmi.dbis.cs108.casono.client.chat.ChatController; import ch.unibas.dmi.dbis.cs108.casono.client.chat.ChatModel; import ch.unibas.dmi.dbis.cs108.casono.client.chat.Message; +import ch.unibas.dmi.dbis.cs108.casono.ui.sound.SoundManager; import java.net.URL; import java.util.ResourceBundle; import javafx.application.Platform; @@ -76,6 +77,7 @@ public class ChatViewController implements Initializable { * The input field is cleared after sending. */ public void sendMessage() { + SoundManager.getInstance().playButtonClick(); String message = inputField.getText().trim(); if (!message.isEmpty()) { inputField.clear();