mirror of
https://github.com/Akomry/sae302_applicom.git
synced 2025-12-06 11:43:53 +00:00
feat(event): 2.6.5: Réception du post par le client (to debug)
This commit is contained in:
parent
b145e80978
commit
2f47614779
3 changed files with 49 additions and 28 deletions
|
|
@ -3,6 +3,7 @@ package rtgre.chat;
|
|||
import javafx.application.Platform;
|
||||
import javafx.beans.Observable;
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.embed.swing.SwingFXUtils;
|
||||
|
|
@ -110,6 +111,10 @@ public class ChatController implements Initializable {
|
|||
.decorates(loginTextField)
|
||||
.immediate();
|
||||
|
||||
ObservableValue<Boolean> canSendCondition = connectionButton.selectedProperty().not()
|
||||
.or(contactsListView.getSelectionModel().selectedItemProperty().isNull());
|
||||
sendButton.disableProperty().bind(canSendCondition);
|
||||
messageTextField.disableProperty().bind(canSendCondition);
|
||||
|
||||
/* /!\ Set-up d'environnement de test /!\ */
|
||||
/* -------------------------------------- */
|
||||
|
|
@ -122,7 +127,8 @@ public class ChatController implements Initializable {
|
|||
String login = getSelectedContactLogin();
|
||||
if (login != null) {
|
||||
Message message = new Message(login, messageTextField.getText());
|
||||
LOGGER.info(message.toString());
|
||||
LOGGER.info("Sending " + message);
|
||||
client.sendMessageEvent(message);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -269,7 +275,8 @@ public class ChatController implements Initializable {
|
|||
if (contactSelected != null) {
|
||||
LOGGER.info("Clic sur " + contactSelected);
|
||||
}
|
||||
Post postSys = new Post("system", contactSelected.getLogin(), "Bienvenue dans la discussion avec " + contactSelected.getLogin());
|
||||
Post postSys = new Post("system", loginTextField.getText(), "Bienvenue dans la discussion avec " + contactSelected.getLogin());
|
||||
postsObservableList.clear();
|
||||
postsObservableList.add(postSys);
|
||||
postListView.refresh();
|
||||
}
|
||||
|
|
@ -277,23 +284,26 @@ public class ChatController implements Initializable {
|
|||
public void handleEvent(rtgre.modeles.Event event) {
|
||||
LOGGER.info("Received new event! : " + event);
|
||||
LOGGER.info(event.getType());
|
||||
|
||||
// switch (event.getType()) {
|
||||
// case "CONT":
|
||||
// handleContEvent(event.getContent());
|
||||
// default:
|
||||
// LOGGER.warning("Unhandled event type: " + event.getType());
|
||||
// this.client.close();
|
||||
// }
|
||||
|
||||
if (event.getType().equals("CONT")) {
|
||||
handleContEvent(event.getContent());
|
||||
} else if (event.getType().equals("POST")) {
|
||||
handlePostEvent(event.getContent());
|
||||
} else {
|
||||
LOGGER.warning("Unhandled event type: " + event.getType());
|
||||
this.client.close();
|
||||
}
|
||||
}
|
||||
|
||||
private void handlePostEvent(JSONObject content) {
|
||||
if (content.getString("from").equals(contactsListView.getSelectionModel().getSelectedItem()) ||
|
||||
content.getString("to").equals(loginTextField.getText())) {
|
||||
postVector.add(Post.fromJson(content));
|
||||
postsObservableList.add(Post.fromJson(content));
|
||||
postListView.refresh();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void handleContEvent(JSONObject content) {
|
||||
Contact contact = contactMap.getContact(content.getString("login"));
|
||||
if (contact != null) {
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import org.json.JSONObject;
|
|||
import rtgre.chat.ChatController;
|
||||
import rtgre.modeles.Contact;
|
||||
import rtgre.modeles.Event;
|
||||
import rtgre.modeles.Message;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
|
|
@ -85,4 +86,8 @@ public class ChatClient extends ClientTCP {
|
|||
public ChatController getListener() {
|
||||
return listener;
|
||||
}
|
||||
|
||||
public void sendMessageEvent(Message msg) {
|
||||
sendEvent(new Event("MESG", msg.toJsonObject()));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,7 @@ package rtgre.server;
|
|||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import rtgre.chat.net.ChatClient;
|
||||
import rtgre.modeles.Contact;
|
||||
import rtgre.modeles.ContactMap;
|
||||
import rtgre.modeles.Event;
|
||||
import rtgre.modeles.*;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.ServerSocket;
|
||||
|
|
@ -24,6 +22,7 @@ public class ChatServer {
|
|||
private static final Logger LOGGER = Logger.getLogger(ChatServer.class.getCanonicalName());
|
||||
|
||||
private Vector<ChatClientHandler> clientList;
|
||||
private PostVector postVector;
|
||||
private ContactMap contactMap;
|
||||
|
||||
static {
|
||||
|
|
@ -237,18 +236,6 @@ public class ChatServer {
|
|||
|
||||
private boolean handleEvent(String message) throws JSONException, IllegalStateException {
|
||||
Event event = Event.fromJson(message);
|
||||
// switch (event.getType()) {
|
||||
// case Event.AUTH:
|
||||
// doLogin(event.getContent());
|
||||
// LOGGER.finest("Login successful");
|
||||
// return true;
|
||||
// case Event.LIST_CONTACTS:
|
||||
// doListContact(event.getContent());
|
||||
// LOGGER.finest("Sending contacts");
|
||||
// default:
|
||||
// LOGGER.warning("Unhandled event type: " + event.getType());
|
||||
// return false;
|
||||
// }
|
||||
if (event.getType().equals(Event.AUTH)) {
|
||||
doLogin(event.getContent());
|
||||
LOGGER.finest("Login successful");
|
||||
|
|
@ -256,12 +243,31 @@ public class ChatServer {
|
|||
} else if (event.getType().equals(Event.LIST_CONTACTS)) {
|
||||
doListContact(event.getContent());
|
||||
LOGGER.finest("Sending contacts");
|
||||
return true;
|
||||
} else if (event.getType().equals(Event.MESG)) {
|
||||
doMessage(event.getContent());
|
||||
return true;
|
||||
} else {
|
||||
LOGGER.warning("Unhandled event type: " + event.getType());
|
||||
return false;
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void doMessage(JSONObject content) throws JSONException, IllegalStateException {
|
||||
if (content.getString("to").equals(user.getLogin()) || !contactMap.containsKey(content.getString("to"))) {
|
||||
throw new IllegalStateException();
|
||||
} else {
|
||||
Post post = new Post(
|
||||
user.getLogin(),
|
||||
Message.fromJson(content)
|
||||
);
|
||||
Event postEvent = new Event("POST", post.toJsonObject());
|
||||
|
||||
sendEventToContact(contactMap.getContact(post.getFrom()), postEvent);
|
||||
sendEventToContact(contactMap.getContact(post.getTo()), postEvent);
|
||||
|
||||
postVector.add(post);
|
||||
}
|
||||
}
|
||||
|
||||
private void doListContact(JSONObject content) throws JSONException, IllegalStateException {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue