package envoy.client.ui.listcell; import javafx.scene.control.ListCell; import javafx.scene.control.ListView; import envoy.client.data.Chat; /** * Project: envoy-client
* File: UserListCell.java
* Created: 28.03.2020
* * @author Kai S. K. Engelbart * @since Envoy Client v0.1-beta */ public class ContactListCellFactory extends ListCell { private final ListView listView; /** * @param listView the list view inside which this cell is contained * @since Envoy Client v0.1-beta */ public ContactListCellFactory(ListView listView) { this.listView = listView; } /** * Displays the name of a contact. If the contact is a user, their online status * is displayed as well. * * @since Envoy Client v0.1-beta */ @Override protected void updateItem(Chat chat, boolean empty) { super.updateItem(chat, empty); if (empty || chat.getRecipient() == null) { setText(null); setGraphic(null); } else { final var control = new ChatControl(chat); prefWidthProperty().bind(listView.widthProperty().subtract(40)); setGraphic(control); } } }