Implemented some suggestions made by @delvh

This commit is contained in:
DieGurke 2020-07-12 13:07:46 +02:00
parent 0b0b240fb1
commit 4b3fa65822
4 changed files with 11 additions and 13 deletions

View File

@ -140,10 +140,10 @@ public final class ChatScene implements Restorable {
userList.getItems().remove(chat);
userList.getItems().add(0, chat);
if (chat.equals(currentChat)) userList.getSelectionModel().select(0);
userList.refresh();
localDB.getChats().remove(chat);
localDB.getChats().add(0, chat);
});
userList.refresh();
});
});

View File

@ -1,9 +1,8 @@
package envoy.client.ui.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import javafx.application.Platform;
import javafx.fxml.FXML;
@ -64,10 +63,8 @@ public class ContactSearchScene {
searchBar.setClearButtonListener(e -> { searchBar.getTextField().clear(); contactList.getItems().clear(); });
eventBus.register(ContactSearchResult.class,
response -> Platform.runLater(() -> {
List<Chat> chats = new ArrayList<Chat>();
response.get().stream().forEach(r -> chats.add(new Chat(r)));
contactList.getItems().clear();
contactList.getItems().addAll(chats);
contactList.getItems().addAll(response.get().stream().map(Chat::new).collect(Collectors.toList()));
}));
}
@ -117,7 +114,7 @@ public class ContactSearchScene {
eventBus.dispatch(new SendEvent(event));
// Updates the UI
eventBus.dispatch(event);
logger.log(Level.INFO, "Added contact " + chat);
logger.log(Level.INFO, "Added contact " + chat.getRecipient());
}));
}
}

View File

@ -4,6 +4,7 @@ import javafx.geometry.Pos;
import javafx.scene.control.Label;
import javafx.scene.layout.*;
import envoy.client.data.Chat;
import envoy.data.Contact;
import envoy.data.Group;
import envoy.data.User;
@ -24,20 +25,20 @@ public class ChatControl extends HBox {
* @param contact the contact that should be formatted
* @since Envoy Client v0.1-beta
*/
public ChatControl(Contact contact, int unreadMessagesAmount) {
public ChatControl(Chat chat, int unreadMessagesAmount) {
// Container with contact name
final var vBox = new VBox();
final var nameLabel = new Label(contact.getName());
final var nameLabel = new Label(chat.getRecipient().getName());
nameLabel.setWrapText(true);
vBox.getChildren().add(nameLabel);
if (contact instanceof User) {
if (chat.getRecipient() instanceof User) {
// Online status
final var user = (User) contact;
final var user = (User) chat.getRecipient();
final var statusLabel = new Label(user.getStatus().toString());
statusLabel.getStyleClass().add(user.getStatus().toString().toLowerCase());
vBox.getChildren().add(statusLabel);
} else // Member count
vBox.getChildren().add(new Label(((Group) contact).getContacts().size() + " members"));
vBox.getChildren().add(new Label(((Group) chat.getRecipient()).getContacts().size() + " members"));
getChildren().add(vBox);
if (unreadMessagesAmount != 0) {

View File

@ -36,7 +36,7 @@ public class ContactListCellFactory extends ListCell<Chat> {
setText(null);
setGraphic(null);
} else {
final var control = new ChatControl(chat.getRecipient(), chat.getUnreadAmount());
final var control = new ChatControl(chat, chat.getUnreadAmount());
prefWidthProperty().bind(listView.widthProperty().subtract(40));
setGraphic(control);
}