Merge branch 'revert-660883f7' into 'master'

Revert "worked through a few warnings, changed a few anonymous classes to lambdas"

See merge request cs108-fs22/Gruppe-8!5
This commit is contained in:
Sebastian Lenzlinger 2022-04-17 10:13:28 +00:00
commit bd5aa011a1
3 changed files with 36 additions and 20 deletions

View File

@ -6,6 +6,7 @@ public class ClientModel {
private String username; private String username;
private Client client; private Client client;
private String incomingChatMsg;
public ClientModel(String username, Client client) { public ClientModel(String username, Client client) {
this.username = username; this.username = username;

View File

@ -20,6 +20,6 @@ public class GUI implements Runnable{
*/ */
@Override @Override
public void run() { public void run() {
Application.launch(ChatApp.class); Application.launch(this.chatApp.getClass());
} }
} }

View File

@ -1,21 +1,25 @@
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.multiplayer.client.Client;
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;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ChangeListener; import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue; import javafx.beans.value.ObservableValue;
import javafx.collections.ListChangeListener; import javafx.collections.ListChangeListener;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
import javafx.event.EventHandler; import javafx.event.EventHandler;
import javafx.event.EventType;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.fxml.Initializable; import javafx.fxml.Initializable;
import javafx.scene.Node; import javafx.scene.Node;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.ColorPicker;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.SplitPane; import javafx.scene.control.SplitPane;
import javafx.scene.control.TextArea; import javafx.scene.control.TextArea;
@ -23,6 +27,7 @@ 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 javafx.scene.paint.Paint;
public class ChatController implements Initializable { public class ChatController implements Initializable {
@ -51,7 +56,6 @@ public class ChatController implements Initializable {
whisperTargetChosen = new SimpleBooleanProperty(); whisperTargetChosen = new SimpleBooleanProperty();
cmd = ""; cmd = "";
} }
public ChatController(ClientModel client) { public ChatController(ClientModel client) {
this.client = client; this.client = client;
whisperTargetChosen = new SimpleBooleanProperty(); whisperTargetChosen = new SimpleBooleanProperty();
@ -70,9 +74,12 @@ public class ChatController implements Initializable {
@Override @Override
public void initialize(URL location, ResourceBundle resources) { public void initialize(URL location, ResourceBundle resources) {
vBoxChatMessages.getChildren().addListener( vBoxChatMessages.getChildren().addListener(new ListChangeListener<Node>() {
(ListChangeListener<Node>) c -> vBoxChatMessages.setMaxHeight( @Override
vBoxChatMessages.getMaxHeight() * 2)); public void onChanged(Change<? extends Node> c) {
vBoxChatMessages.setMaxHeight(vBoxChatMessages.getMaxHeight() * 2);
}
});
vBoxChatMessages.heightProperty().addListener(new ChangeListener<Number>() { vBoxChatMessages.heightProperty().addListener(new ChangeListener<Number>() {
/** /**
@ -90,26 +97,34 @@ public class ChatController implements Initializable {
}); });
/** /**
* Initialize what happens when the send button is pressed * Initialize what heppens when the sen button is pressed
*/ */
sendButton.setOnAction(event -> { sendButton.setOnAction(new EventHandler<ActionEvent>() {
String msg = chatMsgField.getText(); @Override
if (!msg.isEmpty()) { public void handle(ActionEvent event) {
client.getClient().sendMsgToServer(cmd.toString() + msg); String msg = chatMsgField.getText();
Label l = new Label(client.getUsername() + " (you): " + msg); if (!msg.isEmpty()) {
l.setBackground(Background.fill(Color.LAVENDER)); client.getClient().sendMsgToServer(cmd.toString() + msg);
vBoxChatMessages.getChildren().add(l); Label l = new Label(client.getUsername() + " (you): " + msg);
chatMsgField.clear(); l.setBackground(Background.fill(Color.LAVENDER));
vBoxChatMessages.getChildren().add(l);
chatMsgField.clear();
}
} }
}); });
/** /**
* Initialize the change of the TextArea field holding potential chat messages * Initialize the change of the TextArea field holding potential chat messages
*/ */
chatMsgField.textProperty().addListener( chatMsgField.textProperty().addListener(new ChangeListener<String>() {
(observable, oldValue, newValue) -> chatMsgField.setText(newValue)); @Override
public void changed(ObservableValue<? extends String> observable, String oldValue,
String newValue) {
chatMsgField.setText(newValue);
}
});
//Bind the fact if the whisper field contains a name to a boolean //Bind the the fact if the whisper field contains a name to a boolean
whisperTargetChosen.bind(whisperTargetSelectField.textProperty().isEmpty()); whisperTargetChosen.bind(whisperTargetSelectField.textProperty().isEmpty());
/** /**
@ -138,7 +153,7 @@ public class ChatController implements Initializable {
} }
/** /**
* @return the client whose chat controller this is * @return the client who's chat controller this is
*/ */
public ClientModel getClient() { public ClientModel getClient() {
return client; return client;
@ -156,7 +171,7 @@ public class ChatController implements Initializable {
} }
/** /**
* The client calls this method to forward a chat message to the chat gui * The client calls this method to foreward a chat message to the chat gui
* *
* @param msg the message to be displayed * @param msg the message to be displayed
*/ */