Feat: Add sounds to chat UI

This commit is contained in:
Jona Walpert
2026-04-30 11:35:34 +02:00
parent b397478337
commit cf52d293a4
2 changed files with 25 additions and 17 deletions
@@ -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;
}
}
@@ -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();