Added ChatController to the running application

This commit is contained in:
Seraina 2022-04-17 14:33:55 +02:00
parent edf5c65da2
commit 28b0c08ddb
2 changed files with 13 additions and 6 deletions

View File

@ -18,7 +18,7 @@ public class ChatApp extends Application {
public static final BudaLogConfig l = new BudaLogConfig(LOGGER); public static final BudaLogConfig l = new BudaLogConfig(LOGGER);
private static ClientModel clientModel; private static ClientModel clientModel;
private ChatController chatController; private static ChatController chatController;
public ChatApp() { public ChatApp() {
super(); super();
@ -31,9 +31,9 @@ public class ChatApp extends Application {
this.chatController = new ChatController(clientModel); this.chatController = new ChatController(clientModel);
} }
public void setChatController( public static void setChatController(
ChatController chatController) { ChatController chatC) {
this.chatController = chatController; chatController = chatC;
} }
public static void setClientModel(ClientModel clientM) { public static void setClientModel(ClientModel clientM) {

View File

@ -1,6 +1,7 @@
package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.chat; package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.chat;
import ch.unibas.dmi.dbis.cs108.BudaLogConfig;
import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ClientModel; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ClientModel;
import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.Protocol; import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.Protocol;
import java.net.URL; import java.net.URL;
@ -23,8 +24,12 @@ import javafx.scene.control.TextField;
import javafx.scene.layout.Background; import javafx.scene.layout.Background;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class ChatController implements Initializable { public class ChatController implements Initializable {
public static final Logger LOGGER = LogManager.getLogger(ChatController.class);
public static final BudaLogConfig l = new BudaLogConfig(LOGGER);
@FXML @FXML
private SplitPane chatPaneRoot; private SplitPane chatPaneRoot;
@ -49,12 +54,12 @@ public class ChatController implements Initializable {
public ChatController() { //TODO: why does this get called public ChatController() { //TODO: why does this get called
super(); super();
whisperTargetChosen = new SimpleBooleanProperty(); whisperTargetChosen = new SimpleBooleanProperty();
cmd = ""; cmd = "CHATA$";
} }
public ChatController(ClientModel client) { public ChatController(ClientModel client) {
this.client = client; this.client = client;
whisperTargetChosen = new SimpleBooleanProperty(); whisperTargetChosen = new SimpleBooleanProperty();
cmd = ""; cmd = "CHATA";
} }
@ -69,6 +74,7 @@ public class ChatController implements Initializable {
@Override @Override
public void initialize(URL location, ResourceBundle resources) { public void initialize(URL location, ResourceBundle resources) {
setClient(ChatApp.getClientModel()); setClient(ChatApp.getClientModel());
ChatApp.setChatController(this);
vBoxChatMessages.getChildren().addListener(new ListChangeListener<Node>() { vBoxChatMessages.getChildren().addListener(new ListChangeListener<Node>() {
@Override @Override
public void onChanged(Change<? extends Node> c) { public void onChanged(Change<? extends Node> c) {
@ -100,6 +106,7 @@ public class ChatController implements Initializable {
String msg = chatMsgField.getText(); String msg = chatMsgField.getText();
if (!msg.isEmpty()) { if (!msg.isEmpty()) {
client.getClient().sendMsgToServer(cmd.toString() + msg); client.getClient().sendMsgToServer(cmd.toString() + msg);
LOGGER.info("Message trying to send is: " + cmd.toString() + msg);
Label l = new Label(client.getUsername() + " (you): " + msg); Label l = new Label(client.getUsername() + " (you): " + msg);
l.setBackground(Background.fill(Color.LAVENDER)); l.setBackground(Background.fill(Color.LAVENDER));
vBoxChatMessages.getChildren().add(l); vBoxChatMessages.getChildren().add(l);