diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LobbyListItem.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LobbyListItem.java index 5741c4f..19b4cb6 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LobbyListItem.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LobbyListItem.java @@ -18,7 +18,7 @@ public class LobbyListItem { private final SimpleStringProperty lobbyID; private final SimpleStringProperty adminName; - private ObservableList clientsInLobby; + private ObservableList clientsInLobby; private SimpleBooleanProperty ownedByClient; private SimpleBooleanProperty isOpen; @@ -62,11 +62,11 @@ public class LobbyListItem { this.adminName.set(adminName); } - public ObservableList getClientsInLobby() { + public ObservableList getClientsInLobby() { return clientsInLobby; } - public void setClientsInLobby(ObservableList clientsInLobby) { + public void setClientsInLobby(ObservableList clientsInLobby) { this.clientsInLobby = clientsInLobby; } @@ -110,6 +110,7 @@ public class LobbyListItem { this.noOfPlayersInLobby.set(noOfPlayersInLobby); } + @Override public String toString() { return "LobbyListItem{" + "lobbyID=" + lobbyID + ", adminName=" + adminName diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java index cea88c0..56d0622 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java @@ -90,10 +90,12 @@ public class LoungeSceneViewController implements Initializable { private ObservableMap> lobbyToMemberssMap; private HashMap clientToLobbyMap; + private HashMap lobbyIDtoLobbyMop; public LoungeSceneViewController() { super(); lobbyToMemberssMap = FXCollections.observableHashMap(); + lobbyIDtoLobbyMop = new HashMap<>(); } public void setChatApp(ChatApp chatApp) { @@ -282,7 +284,7 @@ public class LoungeSceneViewController implements Initializable { if (item.isOwnedByClient()) { startGame(); } else { - joinGame(item.lobbyIDProperty().getName()); + joinGame(item.lobbyIDProperty().getValue()); } }); startOrJoin.setText(item.isOwnedByClient() ? "Start" : "Join"); @@ -354,8 +356,15 @@ public class LoungeSceneViewController implements Initializable { Platform.runLater(new Runnable() { @Override public void run() { - ObservableList members = lobbyToMemberssMap.get(lobbyID); - members.add(player); + Iterator itr = clients.iterator(); + while(itr.hasNext()){ + ClientListItem cl = itr.next(); + if(cl.getName().equals(player)){ + LobbyListItem li = lobbyIDtoLobbyMop.get(lobbyID); + li.getClientsInLobby().add(cl); + } + } + } }); } @@ -383,6 +392,7 @@ public class LoungeSceneViewController implements Initializable { } LobbyListItem item = new LobbyListItem(id, admin, new SimpleBooleanProperty(ownedByClient), new SimpleBooleanProperty(true), new SimpleIntegerProperty(0)); + lobbyIDtoLobbyMop.put(lobbyID,item); LOGGER.debug("In newLobby()2 LobbyListView" + LobbyListView); Platform.runLater(new Runnable() { @Override