11package com .faforever .client .player ;
22
33import com .faforever .client .achievements .AchievementService ;
4- import com .faforever .client .chat .ChatChannelUser ;
54import com .faforever .client .domain .api .Leaderboard ;
65import com .faforever .client .domain .server .GameInfo ;
76import com .faforever .client .domain .server .PlayerInfo ;
1817import com .faforever .commons .lobby .GameStatus ;
1918import javafx .beans .property .ObjectProperty ;
2019import javafx .beans .property .SimpleObjectProperty ;
21- import javafx .beans .value .ChangeListener ;
2220import javafx .beans .value .ObservableValue ;
2321import javafx .scene .Node ;
2422import javafx .scene .control .Label ;
3432import reactor .core .publisher .Mono ;
3533import reactor .function .TupleUtils ;
3634
37- import java .util .Objects ;
3835import java .util .stream .Collectors ;
3936
4037@ Component
@@ -63,14 +60,7 @@ public class PrivatePlayerInfoController extends NodeController<Node> {
6360 public Label unlockedAchievementsLabel ;
6461 public Separator separator ;
6562
66- private final ObjectProperty <ChatChannelUser > chatUser = new SimpleObjectProperty <>();
67-
68- private final ChangeListener <PlayerInfo > playerChangeListener = (observable , oldValue , newValue ) -> {
69- if (newValue != null && !Objects .equals (oldValue , newValue )) {
70- loadReceiverRatingInformation (newValue );
71- populateUnlockedAchievementsLabel (newValue );
72- }
73- };
63+ private final ObjectProperty <PlayerInfo > player = new SimpleObjectProperty <>();
7464
7565 @ Override
7666 public Node getRoot () {
@@ -85,8 +75,7 @@ protected void onInitialize() {
8575 gameDetailController .setPlaytimeVisible (true );
8676 gameDetailWrapper .setVisible (false );
8777
88- ObservableValue <Boolean > playerExistsProperty = chatUser .flatMap (user -> user .playerProperty ().isNotNull ())
89- .when (showing );
78+ ObservableValue <Boolean > playerExistsProperty = player .isNotNull ().when (showing );
9079 userImageView .visibleProperty ().bind (playerExistsProperty );
9180 country .visibleProperty ().bind (playerExistsProperty );
9281 ratingsLabels .visibleProperty ().bind (playerExistsProperty );
@@ -96,36 +85,30 @@ protected void onInitialize() {
9685 unlockedAchievements .visibleProperty ().bind (playerExistsProperty );
9786 unlockedAchievementsLabel .visibleProperty ().bind (playerExistsProperty );
9887
99- ObservableValue <PlayerInfo > playerObservable = chatUser .flatMap (ChatChannelUser ::playerProperty );
100-
10188 gamesPlayed .textProperty ()
102- .bind (playerObservable .flatMap (PlayerInfo ::numberOfGamesProperty ).map (i18n ::number ).when (showing ));
89+ .bind (player .flatMap (PlayerInfo ::numberOfGamesProperty ).map (i18n ::number ).when (showing ));
10390
104- username .textProperty ().bind (chatUser .map (ChatChannelUser ::getUsername ).when (showing ));
91+ username .textProperty ().bind (player .map (PlayerInfo ::getUsername ).when (showing ));
10592 country .textProperty ()
106- .bind (
107- playerObservable .flatMap (PlayerInfo ::countryProperty ).map (i18n ::getCountryNameLocalized ).when (showing ));
93+ .bind (player .flatMap (PlayerInfo ::countryProperty ).map (i18n ::getCountryNameLocalized ).when (showing ));
10894 userImageView .imageProperty ()
109- .bind (playerObservable .map (PlayerInfo ::getId ).map (IdenticonUtil ::createIdenticon ).when (showing ));
110- ObservableValue <GameInfo > gameObservable = playerObservable .flatMap (PlayerInfo ::gameProperty );
95+ .bind (player .map (PlayerInfo ::getId ).map (IdenticonUtil ::createIdenticon ).when (showing ));
96+ ObservableValue <GameInfo > gameObservable = player .flatMap (PlayerInfo ::gameProperty );
11197 gameDetailController .gameProperty ().bind (gameObservable .when (showing ));
11298 gameDetailWrapper .visibleProperty ().bind (gameObservable .flatMap (GameInfo ::statusProperty )
11399 .map (status -> status == GameStatus .OPEN || status == GameStatus .PLAYING )
114100 .orElse (false )
115101 .when (showing ));
116- chatUser .flatMap (ChatChannelUser ::playerProperty ).addListener (playerChangeListener );
117- }
118-
119- public void setChatUser (ChatChannelUser chatUser ) {
120- this .chatUser .set (chatUser );
121- }
122-
123- public ChatChannelUser getChatUser () {
124- return chatUser .get ();
102+ player .when (showing ).subscribe ((playerInfo ) -> {
103+ if (playerInfo != null ) {
104+ loadReceiverRatingInformation (playerInfo );
105+ populateUnlockedAchievementsLabel (playerInfo );
106+ }
107+ });
125108 }
126109
127- public ObjectProperty <ChatChannelUser > chatUserProperty () {
128- return chatUser ;
110+ public ObjectProperty <PlayerInfo > playerProperty () {
111+ return player ;
129112 }
130113
131114 private void populateUnlockedAchievementsLabel (PlayerInfo player ) {
0 commit comments