Revised structure
This commit is contained in:
@ -30,7 +30,6 @@ import envoy.schema.Message;
|
||||
import envoy.schema.Sync;
|
||||
import envoy.schema.User;
|
||||
|
||||
|
||||
/**
|
||||
* Project: <strong>envoy-client</strong><br>
|
||||
* File: <strong>ChatWindow.java</strong><br>
|
||||
@ -156,8 +155,9 @@ public class ChatWindow extends JFrame {
|
||||
if (!messageEnterTextfield.getText().isEmpty()) try {
|
||||
|
||||
// Create and send message object
|
||||
final Message message = client.createMessage(messageEnterTextfield.getText());
|
||||
client.addWaitingMessageToLocalDB(message, currentChat);
|
||||
final Message message = localDB.createMessage(messageEnterTextfield.getText(),
|
||||
currentChat.getRecipient());
|
||||
localDB.addWaitingMessageToLocalDB(message, currentChat);
|
||||
messageList.setModel(currentChat.getModel());
|
||||
|
||||
// Clear text field
|
||||
@ -208,14 +208,12 @@ public class ChatWindow extends JFrame {
|
||||
client.setRecipient(user);
|
||||
|
||||
textPane.setText(currentChat.getRecipient().getName());
|
||||
|
||||
|
||||
messageList.setModel(currentChat.getModel());
|
||||
contentPane.revalidate();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
userList.setSelectionForeground(new Color(255, 255, 255));
|
||||
userList.setSelectionBackground(new Color(102, 0, 153));
|
||||
userList.setForeground(new Color(255, 255, 255));
|
||||
@ -233,9 +231,8 @@ public class ChatWindow extends JFrame {
|
||||
contentPane.add(userList, gbc_userList);
|
||||
contentPane.revalidate();
|
||||
|
||||
|
||||
loadUsersAndChats();
|
||||
startReceiverThread(5000);
|
||||
startSyncThread(5000);
|
||||
|
||||
contentPane.revalidate();
|
||||
}
|
||||
@ -266,20 +263,23 @@ public class ChatWindow extends JFrame {
|
||||
* the server
|
||||
* @since Envoy v0.1-alpha
|
||||
*/
|
||||
private void startReceiverThread(int timeout) {
|
||||
private void startSyncThread(int timeout) {
|
||||
new Timer(timeout, (evt) -> {
|
||||
if(currentChat != null) {
|
||||
client.setMessagesToRead(currentChat);
|
||||
}
|
||||
client.sendSync(client.getSender().getID(), localDB);
|
||||
client.addUnreadMessagesToLocalDB(localDB);
|
||||
client.clearUnreadMessagesSync();
|
||||
|
||||
updateUserStates();
|
||||
|
||||
contentPane.revalidate();
|
||||
contentPane.repaint();
|
||||
if (currentChat != null) { localDB.setMessagesToRead(currentChat); }
|
||||
|
||||
new Thread(() -> {
|
||||
|
||||
// Synchronize
|
||||
localDB.applySync(
|
||||
client.sendSync(client.getSender().getID(), localDB.fillSync(client.getSender().getID())));
|
||||
localDB.addUnreadMessagesToLocalDB();
|
||||
localDB.clearUnreadMessagesSync();
|
||||
|
||||
// Update UI
|
||||
SwingUtilities
|
||||
.invokeLater(() -> { updateUserStates(); contentPane.revalidate(); contentPane.repaint(); });
|
||||
}).start();
|
||||
}).start();
|
||||
}
|
||||
|
||||
private void updateUserStates() {
|
||||
|
Reference in New Issue
Block a user