diff --git a/src/main/java/fr/insa/clavardator/ui/users/UserActiveIndicatorController.java b/src/main/java/fr/insa/clavardator/ui/users/UserActiveIndicatorController.java index bdcf042..8b76ff6 100644 --- a/src/main/java/fr/insa/clavardator/ui/users/UserActiveIndicatorController.java +++ b/src/main/java/fr/insa/clavardator/ui/users/UserActiveIndicatorController.java @@ -34,7 +34,6 @@ public class UserActiveIndicatorController implements Initializable { private void onStateChange(PropertyChangeEvent propertyChangeEvent) { if (propertyChangeEvent.getPropertyName().equals("state")) { final PeerUser.State newState = (PeerUser.State) propertyChangeEvent.getNewValue(); - Log.v(this.getClass().getSimpleName(), "User state updated to " + newState.toString()); Platform.runLater(() -> updateState(newState == PeerUser.State.CONNECTED)); } } diff --git a/src/main/java/fr/insa/clavardator/ui/users/UserListItemController.java b/src/main/java/fr/insa/clavardator/ui/users/UserListItemController.java index ca5e941..33dfaeb 100644 --- a/src/main/java/fr/insa/clavardator/ui/users/UserListItemController.java +++ b/src/main/java/fr/insa/clavardator/ui/users/UserListItemController.java @@ -3,9 +3,11 @@ package fr.insa.clavardator.ui.users; import com.jfoenix.controls.JFXButton; import fr.insa.clavardator.ui.ButtonPressEvent; import fr.insa.clavardator.users.PeerUser; +import javafx.application.Platform; import javafx.fxml.FXML; import javafx.fxml.Initializable; +import java.beans.PropertyChangeEvent; import java.net.URL; import java.util.ResourceBundle; @@ -42,8 +44,21 @@ public class UserListItemController implements Initializable { resetBackground(); } + + private void onUsernameChange(PropertyChangeEvent propertyChangeEvent) { + if (propertyChangeEvent.getPropertyName().equals("username")) { + final String newUsername = (String) propertyChangeEvent.getNewValue(); + Platform.runLater(() -> button.setText(newUsername)); + } + } + public void setUser(PeerUser user) { + if (this.user != null) { + // remove old observer before setting new user + this.user.removeObserver(this::onUsernameChange); + } this.user = user; + user.addObserver(this::onUsernameChange); indicatorController.setUser(user); button.setText(user.getUsername()); resetBackground();