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.ChatModel;
import ch.unibas.dmi.dbis.cs108.casono.client.chat.ChatType; 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.client.chat.Message;
import ch.unibas.dmi.dbis.cs108.casono.ui.sound.SoundManager;
import java.io.IOException; import java.io.IOException;
import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
@@ -70,7 +71,11 @@ public class ChatBoxController {
ChatModel globalChatModel = new ChatModel(global, username, -1, null); ChatModel globalChatModel = new ChatModel(global, username, -1, null);
chatController.getChatModelMap().put(new ChatController.ChatKey(global), globalChatModel); chatController.getChatModelMap().put(new ChatController.ChatKey(global), globalChatModel);
addChatTab("GLOBAL", globalChatModel, global); 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); MenuItem menuItem = new MenuItem(targetUserName);
addWhisperChatButton.getItems().add(menuItem); addWhisperChatButton.getItems().add(menuItem);
menuItem.setOnAction( menuItem.setOnAction(
_ -> _ -> {
SoundManager.getInstance().playButtonClick();
addWhisperChat( addWhisperChat(
targetUserName, targetUserName,
new ChatModel( new ChatModel(
ChatType.WHISPER, ChatType.WHISPER, username, -1, targetUserName));
username, });
-1,
targetUserName)));
}); });
} }
@@ -124,14 +128,16 @@ public class ChatBoxController {
if (oldUsername.equals(item.getText())) { if (oldUsername.equals(item.getText())) {
item.setText(newUsername); item.setText(newUsername);
item.setOnAction( item.setOnAction(
_ -> _ -> {
SoundManager.getInstance().playButtonClick();
addWhisperChat( addWhisperChat(
newUsername, newUsername,
new ChatModel( new ChatModel(
ChatType.WHISPER, ChatType.WHISPER,
username, username,
-1, -1,
newUsername))); newUsername));
});
break; 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.ChatController;
import ch.unibas.dmi.dbis.cs108.casono.client.chat.ChatModel; 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.client.chat.Message;
import ch.unibas.dmi.dbis.cs108.casono.ui.sound.SoundManager;
import java.net.URL; import java.net.URL;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import javafx.application.Platform; import javafx.application.Platform;
@@ -76,6 +77,7 @@ public class ChatViewController implements Initializable {
* The input field is cleared after sending. * The input field is cleared after sending.
*/ */
public void sendMessage() { public void sendMessage() {
SoundManager.getInstance().playButtonClick();
String message = inputField.getText().trim(); String message = inputField.getText().trim();
if (!message.isEmpty()) { if (!message.isEmpty()) {
inputField.clear(); inputField.clear();