From 060137115fc5f258f5d81d7425258bce069ad42a Mon Sep 17 00:00:00 2001 From: Arnaud Vergnet Date: Sun, 3 Jan 2021 13:54:45 +0100 Subject: [PATCH] prevent sending empty messages --- .../ui/chat/ChatFooterController.java | 29 +++++++++++-------- .../insa/clavardator/ui/chat/chatFooter.fxml | 2 +- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/main/java/fr/insa/clavardator/ui/chat/ChatFooterController.java b/src/main/java/fr/insa/clavardator/ui/chat/ChatFooterController.java index c6a65f4..8200041 100644 --- a/src/main/java/fr/insa/clavardator/ui/chat/ChatFooterController.java +++ b/src/main/java/fr/insa/clavardator/ui/chat/ChatFooterController.java @@ -1,5 +1,6 @@ package fr.insa.clavardator.ui.chat; +import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXTextField; import fr.insa.clavardator.ui.ButtonPressEvent; import fr.insa.clavardator.users.PeerUser; @@ -23,6 +24,8 @@ public class ChatFooterController implements Initializable { private HBox container; @FXML private JFXTextField textField; + @FXML + private JFXButton sendButton; private List attachmentListeners; private List sendErrorListeners; @@ -42,12 +45,14 @@ public class ChatFooterController implements Initializable { attachmentListeners.forEach(ButtonPressEvent::onPress); } public void onSend() { - if (remoteUser != null) { - remoteUser.sendTextMessage(textField.getText(), this::onSendError); - } else { - Log.e(this.getClass().getSimpleName(), "Error: remote user not set"); + if(!textField.getText().isEmpty()) { + if (remoteUser != null) { + remoteUser.sendTextMessage(textField.getText(), this::onSendError); + } else { + Log.e(this.getClass().getSimpleName(), "Error: remote user not set"); + } + textField.setText(""); } - textField.setText(""); } public void onSendError(Exception e) { @@ -75,6 +80,7 @@ public class ChatFooterController implements Initializable { public void onTextChange(ObservableValue observable, String oldText, String newText) { saveText(newText); + sendButton.setDisable(isTextFieldEmpty()); } @Override @@ -86,19 +92,18 @@ public class ChatFooterController implements Initializable { textField.setOnKeyPressed(event -> { if (event.getCode() == KeyCode.ENTER) { event.consume(); - if(!textField.getText().isEmpty()){ - onSend(); - } + onSend(); } }); } + private boolean isTextFieldEmpty() { + return textField.getText().equals(""); + } + public void setRemoteUser(PeerUser remoteUser) { this.remoteUser = remoteUser; textField.setText(findSavedText()); - } - - public interface SendMessageEvent { - void onSend(String text); + sendButton.setDisable(isTextFieldEmpty()); } } diff --git a/src/main/resources/fr/insa/clavardator/ui/chat/chatFooter.fxml b/src/main/resources/fr/insa/clavardator/ui/chat/chatFooter.fxml index 6114f4d..3252252 100644 --- a/src/main/resources/fr/insa/clavardator/ui/chat/chatFooter.fxml +++ b/src/main/resources/fr/insa/clavardator/ui/chat/chatFooter.fxml @@ -18,7 +18,7 @@ - +