Revised structure

This commit is contained in:
DieGurke
2019-11-09 13:25:18 +01:00
parent c58a4a73d3
commit 6c212df309
3 changed files with 377 additions and 364 deletions

View File

@ -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() {