Fix username not updating on user list
This commit is contained in:
parent
7075c9e0b6
commit
81673e44b3
2 changed files with 15 additions and 1 deletions
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue