From 44268cc30b96c3cb542e2177c6dfe30fc2eb4d94 Mon Sep 17 00:00:00 2001 From: Joseph Gardner Date: Mon, 25 Sep 2017 15:30:49 +1300 Subject: [PATCH 1/2] Fixed not being able to add custom connections. Still need to test if it works with the http match browser (can't test it atm. #story[1352] --- .../main/java/visualiser/Controllers/LobbyController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java index 38816a0e..dae4c850 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java @@ -40,7 +40,6 @@ public class LobbyController extends Controller { private @FXML TextField addressFld; private @FXML TextField portFld; - private ObservableList connections; private ObservableList customConnections; private AudioClip sound; @@ -83,7 +82,7 @@ public class LobbyController extends Controller { sound = new AudioClip(this.getClass().getResource("/visualiser/sounds/buttonpress.wav").toExternalForm()); sound.play(); addServerGames(); - for(RaceConnection connection: connections) { + for(RaceConnection connection: httpMatchBrowserClient.connections) { connection.check(); } try { @@ -144,9 +143,9 @@ public class LobbyController extends Controller { try { int port = Integer.parseInt(portString); customConnections.add(new RaceConnection(hostName, port, "Boat Game")); - connections.addAll(customConnections); addressFld.clear(); portFld.clear(); + refreshBtnPressed(); } catch (NumberFormatException e) { System.err.println("Port number entered is not a number"); } @@ -174,6 +173,7 @@ public class LobbyController extends Controller { */ private void addServerGames() { httpMatchBrowserClient.connections.addAll(customConnections); + customConnections.clear(); httpMatchBrowserClient.connections.addListener(new ListChangeListener() { @Override public void onChanged(Change c) { From 3f04485b78cc2ad131ad53c6ec13018424c00feb Mon Sep 17 00:00:00 2001 From: Joseph Date: Tue, 26 Sep 2017 13:16:09 +1300 Subject: [PATCH 2/2] Added manual connections works while also receiving available games from the server. #story[1352] --- .../Controllers/LobbyController.java | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java index dae4c850..5953bf92 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java @@ -40,6 +40,7 @@ public class LobbyController extends Controller { private @FXML TextField addressFld; private @FXML TextField portFld; + private ObservableList allConnections; private ObservableList customConnections; private AudioClip sound; @@ -50,12 +51,20 @@ public class LobbyController extends Controller { public void initialize() { httpMatchBrowserClient = new HttpMatchBrowserClient(); + httpMatchBrowserClient.connections.addListener(new ListChangeListener() { + @Override + public void onChanged(Change c) { + refreshTable(); + } + }); + new Thread(httpMatchBrowserClient, "Match Client").start(); // set up the connection table customConnections = FXCollections.observableArrayList(); + allConnections = FXCollections.observableArrayList(); //connections.add(new RaceConnection("localhost", 4942, "Local Game")); - lobbyTable.setItems(httpMatchBrowserClient.connections); + lobbyTable.setItems(allConnections); gameNameColumn.setCellValueFactory(cellData -> cellData.getValue().gamenameProperty()); hostNameColumn.setCellValueFactory(cellData -> cellData.getValue().hostnameProperty()); statusColumn.setCellValueFactory(cellData -> cellData.getValue().statusProperty()); @@ -81,8 +90,14 @@ public class LobbyController extends Controller { public void refreshBtnPressed(){ sound = new AudioClip(this.getClass().getResource("/visualiser/sounds/buttonpress.wav").toExternalForm()); sound.play(); + refreshTable(); + } + + private void refreshTable() { + allConnections.clear(); + addCustomGames(); addServerGames(); - for(RaceConnection connection: httpMatchBrowserClient.connections) { + for(RaceConnection connection: allConnections) { connection.check(); } try { @@ -145,7 +160,7 @@ public class LobbyController extends Controller { customConnections.add(new RaceConnection(hostName, port, "Boat Game")); addressFld.clear(); portFld.clear(); - refreshBtnPressed(); + refreshTable(); } catch (NumberFormatException e) { System.err.println("Port number entered is not a number"); } @@ -172,18 +187,14 @@ public class LobbyController extends Controller { * Adds the games received from the server */ private void addServerGames() { - httpMatchBrowserClient.connections.addAll(customConnections); - customConnections.clear(); - httpMatchBrowserClient.connections.addListener(new ListChangeListener() { - @Override - public void onChanged(Change c) { - refreshBtnPressed(); - } - }); - + allConnections.addAll(httpMatchBrowserClient.connections); /* for (HostGame game : matchBrowserLobbyInterface.getGames()) { connections.add(new RaceConnection(game.getIp(), 4942, "Boat Game")); }*/ } + + private void addCustomGames() { + allConnections.addAll(customConnections); + } }