Compare commits
2 commits
1fe1681d8b
...
81673e44b3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81673e44b3 | ||
|
|
7075c9e0b6 |
3 changed files with 23 additions and 12 deletions
|
|
@ -34,7 +34,6 @@ public class UserActiveIndicatorController implements Initializable {
|
||||||
private void onStateChange(PropertyChangeEvent propertyChangeEvent) {
|
private void onStateChange(PropertyChangeEvent propertyChangeEvent) {
|
||||||
if (propertyChangeEvent.getPropertyName().equals("state")) {
|
if (propertyChangeEvent.getPropertyName().equals("state")) {
|
||||||
final PeerUser.State newState = (PeerUser.State) propertyChangeEvent.getNewValue();
|
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));
|
Platform.runLater(() -> updateState(newState == PeerUser.State.CONNECTED));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,11 @@ package fr.insa.clavardator.ui.users;
|
||||||
import com.jfoenix.controls.JFXButton;
|
import com.jfoenix.controls.JFXButton;
|
||||||
import fr.insa.clavardator.ui.ButtonPressEvent;
|
import fr.insa.clavardator.ui.ButtonPressEvent;
|
||||||
import fr.insa.clavardator.users.PeerUser;
|
import fr.insa.clavardator.users.PeerUser;
|
||||||
|
import javafx.application.Platform;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
|
|
||||||
|
import java.beans.PropertyChangeEvent;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
|
@ -42,8 +44,21 @@ public class UserListItemController implements Initializable {
|
||||||
resetBackground();
|
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) {
|
public void setUser(PeerUser user) {
|
||||||
|
if (this.user != null) {
|
||||||
|
// remove old observer before setting new user
|
||||||
|
this.user.removeObserver(this::onUsernameChange);
|
||||||
|
}
|
||||||
this.user = user;
|
this.user = user;
|
||||||
|
user.addObserver(this::onUsernameChange);
|
||||||
indicatorController.setUser(user);
|
indicatorController.setUser(user);
|
||||||
button.setText(user.getUsername());
|
button.setText(user.getUsername());
|
||||||
resetBackground();
|
resetBackground();
|
||||||
|
|
|
||||||
|
|
@ -40,10 +40,8 @@ public class UserList {
|
||||||
Log.v(this.getClass().getSimpleName(), "Discovered new user: " + id);
|
Log.v(this.getClass().getSimpleName(), "Discovered new user: " + id);
|
||||||
final PeerUser finalUser = createNewUser(id);
|
final PeerUser finalUser = createNewUser(id);
|
||||||
if (finalUser != null) {
|
if (finalUser != null) {
|
||||||
finalUser.connect(ipAddr, () -> {
|
finalUser.connect(ipAddr, () ->
|
||||||
notifyNewUserObservers(finalUser);
|
finalUser.addObserver(evt -> userChangeObserver(finalUser, evt)), errorCallback);
|
||||||
finalUser.addObserver(evt -> userChangeObserver(finalUser, evt));
|
|
||||||
}, errorCallback);
|
|
||||||
}
|
}
|
||||||
}, errorCallback);
|
}, errorCallback);
|
||||||
}
|
}
|
||||||
|
|
@ -62,10 +60,8 @@ public class UserList {
|
||||||
Log.v(this.getClass().getSimpleName(), "new connection from user: " + id);
|
Log.v(this.getClass().getSimpleName(), "new connection from user: " + id);
|
||||||
final PeerUser finalUser = createNewUser(id);
|
final PeerUser finalUser = createNewUser(id);
|
||||||
if (finalUser != null) {
|
if (finalUser != null) {
|
||||||
finalUser.connect(clientSocket, () -> {
|
finalUser.connect(clientSocket, () ->
|
||||||
notifyNewUserObservers(finalUser);
|
finalUser.addObserver(evt -> userChangeObserver(finalUser, evt)), errorCallback);
|
||||||
finalUser.addObserver(evt -> userChangeObserver(finalUser, evt));
|
|
||||||
}, errorCallback);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
errorCallback);
|
errorCallback);
|
||||||
|
|
@ -84,8 +80,9 @@ public class UserList {
|
||||||
// else create it
|
// else create it
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
// Username is set on TCP connection start
|
// Username is set on TCP connection start
|
||||||
user = new PeerUser(id, "");
|
user = new PeerUser(id);
|
||||||
inactiveUsers.put(id, user);
|
inactiveUsers.put(id, user);
|
||||||
|
notifyNewUserObservers(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
return user;
|
return user;
|
||||||
|
|
@ -103,9 +100,9 @@ public class UserList {
|
||||||
// Connection handling
|
// Connection handling
|
||||||
if (!inactiveUsers.containsKey(id)) {
|
if (!inactiveUsers.containsKey(id)) {
|
||||||
if (activeUsers.containsKey(id)) {
|
if (activeUsers.containsKey(id)) {
|
||||||
Log.e(getClass().getSimpleName(), "Tried to set state CONNECTED on an already connected user: user id " + id);
|
Log.w(getClass().getSimpleName(), "Tried to set state CONNECTED on an already connected user: user id " + id);
|
||||||
} else {
|
} else {
|
||||||
Log.e(getClass().getSimpleName(), "Tried to set state CONNECTED on an unknown user: user id " + id);
|
Log.w(getClass().getSimpleName(), "Tried to set state CONNECTED on an unknown user: user id " + id);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue