diff --git a/src/main/java/seng302/client/ClientPacketParser.java b/src/main/java/seng302/client/ClientPacketParser.java index bfa644e4..fa952b56 100644 --- a/src/main/java/seng302/client/ClientPacketParser.java +++ b/src/main/java/seng302/client/ClientPacketParser.java @@ -66,6 +66,7 @@ public class ClientPacketParser { * @param packet the packet to be looked at and processed */ public static void parsePacket(StreamPacket packet) { + System.out.println(packet.getType()); try { switch (packet.getType()) { case HEARTBEAT: @@ -283,9 +284,9 @@ public class ClientPacketParser { if (messageType == 7) { //7 is the boat XML boats = xmlObject.getBoatXML().getCompetingBoats(); ClientState.setBoats(xmlObject.getBoatXML().getCompetingBoats()); + ClientState.setDirtyState(true); } if (messageType == 6) { //6 is race info xml - newRaceXmlReceived = true; } } diff --git a/src/main/java/seng302/client/ClientState.java b/src/main/java/seng302/client/ClientState.java index ce27f99d..64512a1b 100644 --- a/src/main/java/seng302/client/ClientState.java +++ b/src/main/java/seng302/client/ClientState.java @@ -8,7 +8,7 @@ import java.util.concurrent.ConcurrentHashMap; import seng302.models.Yacht; /** - * Created by zyt10 on 21/07/17. + * Used by the client to store static variables to be used in game. */ public class ClientState { diff --git a/src/main/java/seng302/client/ClientStateQueryingRunnable.java b/src/main/java/seng302/client/ClientStateQueryingRunnable.java index d2fb9220..a71d045b 100644 --- a/src/main/java/seng302/client/ClientStateQueryingRunnable.java +++ b/src/main/java/seng302/client/ClientStateQueryingRunnable.java @@ -1,10 +1,10 @@ package seng302.client; -import java.util.List; import java.util.Observable; /** - * Created by zyt10 on 21/07/17. + * Used by LobbyController to run a separate thread-loop + * updates the controller when change is detected. */ public class ClientStateQueryingRunnable extends Observable implements Runnable { @@ -15,9 +15,21 @@ public class ClientStateQueryingRunnable extends Observable implements Runnable @Override public void run() { while(!terminate) { - if (ClientState.isRaceStarted() && ClientState.isConnectedToHost()) { +// if (ClientState.isRaceStarted() && ClientState.isConnectedToHost()) { +// setChanged(); +// notifyObservers(); +// } + // Sleeping the thread so it will respond to the if statement below + // if you know a better fix, pls tell me :) -ryan + try { + Thread.sleep(0); + } catch (InterruptedException e) { + e.printStackTrace(); + } + if (ClientState.isDirtyState()) { setChanged(); notifyObservers(); + ClientState.setDirtyState(false); } } } diff --git a/src/main/java/seng302/controllers/LobbyController.java b/src/main/java/seng302/controllers/LobbyController.java index 0d0c16d8..1e296e33 100644 --- a/src/main/java/seng302/controllers/LobbyController.java +++ b/src/main/java/seng302/controllers/LobbyController.java @@ -125,29 +125,29 @@ public class LobbyController implements Initializable, Observer{ Platform.runLater(new Runnable() { @Override public void run() { - switchToRaceView(); -// initialiseListView(); - clientStateQueryingRunnable.terminate(); +// switchToRaceView(); + initialiseListView(); +// clientStateQueryingRunnable.terminate(); } }); } private void initialiseListView() { - firstListView.setItems(firstCompetitor); - secondListView.setItems(secondCompetitor); - thirdListView.setItems(thirdCompetitor); - fourthListView.setItems(fourthCompetitor); - fifthListView.setItems(fifthCompetitor); - sixthListView.setItems(sixthCompetitor); - seventhListView.setItems(seventhCompetitor); - eighthListView.setItems(eighthCompetitor); + firstListView.getItems().clear(); + secondListView.getItems().clear(); + thirdListView.getItems().clear(); + fourthListView.getItems().clear(); + fifthListView.getItems().clear(); + sixthListView.getItems().clear(); + seventhListView.getItems().clear(); + eighthListView.getItems().clear(); competitors = new ArrayList<>(); Collections.addAll(competitors, firstCompetitor, secondCompetitor, thirdCompetitor, fourthCompetitor, fifthCompetitor, sixthCompetitor, seventhCompetitor, eighthCompetitor); for (ObservableList ol : competitors) { - ol = FXCollections.observableArrayList(); + ol.removeAll(); } firstCompetitor.add(ClientState.getClientSourceId()); @@ -163,6 +163,17 @@ public class LobbyController implements Initializable, Observer{ competitorIndex++; } } + + + + firstListView.setItems(firstCompetitor); + secondListView.setItems(secondCompetitor); + thirdListView.setItems(thirdCompetitor); + fourthListView.setItems(fourthCompetitor); + fifthListView.setItems(fifthCompetitor); + sixthListView.setItems(sixthCompetitor); + seventhListView.setItems(seventhCompetitor); + eighthListView.setItems(eighthCompetitor); } private void initialiseLobbyControllerThread() { diff --git a/src/main/java/seng302/gameServer/ServerToClientThread.java b/src/main/java/seng302/gameServer/ServerToClientThread.java index e69032f0..b082e770 100644 --- a/src/main/java/seng302/gameServer/ServerToClientThread.java +++ b/src/main/java/seng302/gameServer/ServerToClientThread.java @@ -81,16 +81,71 @@ public class ServerToClientThread implements Runnable { // TODO: 14/07/17 wmu16 - Work out how to fix this while loop // used by ryan to simulate sending boats.xml -// InputStream inputStream = getClass().getResourceAsStream("/server_config/boats.xml"); -// StringWriter writer = new StringWriter(); -// try { -// IOUtils.copy(inputStream, writer); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// String xml = writer.toString(); -// Message message = new XMLMessage(xml, XMLMessageSubType.BOAT, 0); -// sendMessage(message); + InputStream inputStream = getClass().getResourceAsStream("/server_config/boats1.xml"); + StringWriter writer = new StringWriter(); + try { + IOUtils.copy(inputStream, writer); + } catch (IOException e) { + e.printStackTrace(); + } + String xml = writer.toString(); + Message message = new XMLMessage(xml, XMLMessageSubType.BOAT, 0); + sendMessage(message); + System.out.println("[server] send message 1 " + message); + + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + inputStream = getClass().getResourceAsStream("/server_config/boats.xml"); + writer = new StringWriter(); + try { + IOUtils.copy(inputStream, writer); + } catch (IOException e) { + e.printStackTrace(); + } + xml = writer.toString(); + message = new XMLMessage(xml, XMLMessageSubType.BOAT, 0); + sendMessage(message); + System.out.println("[server] send message 2 " + message); + + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + inputStream = getClass().getResourceAsStream("/server_config/boats2.xml"); + writer = new StringWriter(); + try { + IOUtils.copy(inputStream, writer); + } catch (IOException e) { + e.printStackTrace(); + } + xml = writer.toString(); + message = new XMLMessage(xml, XMLMessageSubType.BOAT, 0); + sendMessage(message); + System.out.println("[server] send message 3 " + message); + + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + inputStream = getClass().getResourceAsStream("/server_config/boats.xml"); + writer = new StringWriter(); + try { + IOUtils.copy(inputStream, writer); + } catch (IOException e) { + e.printStackTrace(); + } + xml = writer.toString(); + message = new XMLMessage(xml, XMLMessageSubType.BOAT, 0); + sendMessage(message); + System.out.println("[server] send message 4 " + message); //------- while(true) { diff --git a/src/main/resources/server_config/boats1.xml b/src/main/resources/server_config/boats1.xml new file mode 100644 index 00000000..401e7bf6 --- /dev/null +++ b/src/main/resources/server_config/boats1.xml @@ -0,0 +1,171 @@ + + + 2015-08-28T17:32:59+0100 + 12 + 219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/server_config/boats2.xml b/src/main/resources/server_config/boats2.xml new file mode 100644 index 00000000..c7255771 --- /dev/null +++ b/src/main/resources/server_config/boats2.xml @@ -0,0 +1,161 @@ + + + 2015-08-28T17:32:59+0100 + 12 + 219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/server_config/boats3.xml b/src/main/resources/server_config/boats3.xml new file mode 100644 index 00000000..401e7bf6 --- /dev/null +++ b/src/main/resources/server_config/boats3.xml @@ -0,0 +1,171 @@ + + + 2015-08-28T17:32:59+0100 + 12 + 219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file