This commit is contained in:
schrom01 2022-04-15 15:34:03 +02:00 committed by Leonardo Brandenberger
parent 5f6266c017
commit 46b0e4386a
1 changed files with 20 additions and 33 deletions

View File

@ -17,39 +17,34 @@ import java.io.IOException;
import static ch.zhaw.pm2.multichat.protocol.ConnectionHandler.State.*; import static ch.zhaw.pm2.multichat.protocol.ConnectionHandler.State.*;
public class ChatWindowController { public class ChatWindowController {
private ClientConnectionHandler connectionHandler; private ClientConnectionHandler connectionHandler;
private ClientMessageList messages; private ClientMessageList messages;
private final WindowCloseHandler windowCloseHandler = new WindowCloseHandler(); private final WindowCloseHandler windowCloseHandler = new WindowCloseHandler();
@FXML @FXML private Pane rootPane;
private Pane rootPane; @FXML private TextField serverAddressField;
@FXML @FXML private TextField serverPortField;
private TextField serverAddressField; @FXML private TextField userNameField;
@FXML @FXML private TextField messageField;
private TextField serverPortField; @FXML private TextArea messageArea;
@FXML @FXML private Button connectButton;
private TextField userNameField; @FXML private Button sendButton;
@FXML @FXML private TextField filterValue;
private TextField messageField;
@FXML
private TextArea messageArea;
@FXML
private Button connectButton;
@FXML
private Button sendButton;
@FXML
private TextField filterValue;
@FXML
public void initialize() {
}
public void setMessages(ClientMessageList messages) { public void setMessages(ClientMessageList messages) {
this.messages = messages; this.messages = messages;
messageListener(); messageListener();
} }
public void setConnectionHandler(ClientConnectionHandler connectionHandler) { public void setConnectionHandler(ClientConnectionHandler connectionHandler){
this.connectionHandler = connectionHandler; this.connectionHandler = connectionHandler;
startConnectionHandlerListener(); startConnectionHandlerListener();
serverAddressField.setText(connectionHandler.getServerAddressProperty().get()); serverAddressField.setText(connectionHandler.getServerAddressProperty().get());
@ -61,7 +56,7 @@ public class ChatWindowController {
} }
@FXML @FXML
private void toggleConnection() { private void toggleConnection () {
if (connectionHandler == null || connectionHandler.getStateProperty().get() != CONNECTED) { if (connectionHandler == null || connectionHandler.getStateProperty().get() != CONNECTED) {
connect(); connect();
} else { } else {
@ -69,20 +64,16 @@ public class ChatWindowController {
} }
} }
private void connect() { private void connect() {
try { try {
messages.clear(); // clear message list messages.clear(); // clear message list
startConnectionHandler(); startConnectionHandler();
connectionHandler.connect(); connectionHandler.connect();
} catch (ChatProtocolException | IOException e) { } catch(ChatProtocolException | IOException e) {
addError(e.getMessage()); addError(e.getMessage());
} }
} }
/**
* Initiates disconnecting of the connectionHandler, also checks if connectionHandler is avaible.
*/
private void disconnect() { private void disconnect() {
if (connectionHandler == null) { if (connectionHandler == null) {
addError("No connection handler"); addError("No connection handler");
@ -95,9 +86,6 @@ public class ChatWindowController {
} }
} }
/**
*
*/
@FXML @FXML
private void message() { private void message() {
String messageString = messageField.getText().strip(); String messageString = messageField.getText().strip();
@ -115,13 +103,13 @@ public class ChatWindowController {
} }
@FXML @FXML
private void applyFilter() { private void applyFilter( ) {
Platform.runLater(() -> this.messageArea.setText(messages.getFilteredMessages(filterValue.getText().strip()))); Platform.runLater(() -> this.messageArea.setText(messages.getFilteredMessages(filterValue.getText().strip())));
} }
private void startConnectionHandler() throws IOException { private void startConnectionHandler() throws IOException {
String userName = userNameField.getText(); String userName = userNameField.getText();
if (!userName.contains(" ")) { if(!userName.contains(" ")) {
String serverAddress = serverAddressField.getText(); String serverAddress = serverAddressField.getText();
int serverPort = Integer.parseInt(serverPortField.getText()); int serverPort = Integer.parseInt(serverPortField.getText());
connectionHandler.initialize(serverAddress, serverPort, userName); connectionHandler.initialize(serverAddress, serverPort, userName);
@ -145,7 +133,7 @@ public class ChatWindowController {
connectButton.setText((newState == CONNECTED || newState == CONFIRM_DISCONNECT) ? "Disconnect" : "Connect"); connectButton.setText((newState == CONNECTED || newState == CONFIRM_DISCONNECT) ? "Disconnect" : "Connect");
} }
}); });
if (newState == DISCONNECTED) { if(newState == DISCONNECTED){
connectionHandler.stopReceiving(); connectionHandler.stopReceiving();
} }
} }
@ -217,7 +205,6 @@ public class ChatWindowController {
}); });
} }
private void messageListener() { private void messageListener() {
messages.getChangedProperty().addListener(new ChangeListener<Boolean>() { messages.getChangedProperty().addListener(new ChangeListener<Boolean>() {
@Override @Override