From 21ce34dda26a5e554dbb752f4ff33faa751ede87 Mon Sep 17 00:00:00 2001 From: Kusal Ekanayake Date: Thu, 28 Sep 2017 15:08:34 +1300 Subject: [PATCH] Fixed finish screen and cleaned up dead code --- .../visualiser/ClientToServerThread.java | 2 +- .../java/seng302/visualiser/GameClient.java | 63 +++--------- .../FinishScreenViewController.java | 97 ------------------- .../visualiser/controllers/ViewManager.java | 2 +- .../dialogs/ServerCreationController.java | 2 +- .../resources/views/FinishScreenView.fxml | 53 ---------- .../views/importantAnnotationSelectView.fxml | 32 ------ 7 files changed, 18 insertions(+), 233 deletions(-) delete mode 100644 src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java delete mode 100644 src/main/resources/views/FinishScreenView.fxml delete mode 100644 src/main/resources/views/importantAnnotationSelectView.fxml diff --git a/src/main/java/seng302/visualiser/ClientToServerThread.java b/src/main/java/seng302/visualiser/ClientToServerThread.java index d8d52fff..c7f23280 100644 --- a/src/main/java/seng302/visualiser/ClientToServerThread.java +++ b/src/main/java/seng302/visualiser/ClientToServerThread.java @@ -182,7 +182,7 @@ public class ClientToServerThread implements Runnable { Platform.runLater(() -> { ViewManager.getInstance().showErrorSnackBar("Server rejected connection."); - ViewManager.getInstance().goToStartView(); +// ViewManager.getInstance().goToStartView(); }); } diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index e8d92892..77b383c4 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -5,9 +5,7 @@ import java.text.SimpleDateFormat; import java.time.ZoneId; import java.time.ZoneOffset; import java.util.ArrayList; -import java.util.Collections; import java.util.Date; -import java.util.List; import java.util.Map; import java.util.TimeZone; import java.util.Timer; @@ -17,7 +15,6 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; -import javafx.scene.layout.Pane; import javafx.scene.paint.Color; import javafx.util.Pair; import seng302.gameServer.GameStages; @@ -49,19 +46,12 @@ import seng302.visualiser.controllers.RaceViewController; import seng302.visualiser.controllers.ViewManager; import seng302.visualiser.controllers.dialogs.PopupDialogController; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.time.ZoneId; -import java.time.ZoneOffset; -import java.util.*; - /** * This class is a client side instance of a yacht racing game in JavaFX. The game is instantiated * with a JavaFX Pane to insert itself into. */ public class GameClient { - private Pane holderPane; private ClientToServerThread socketThread; private MainServerThread server; @@ -83,10 +73,8 @@ public class GameClient { /** * Create an instance of the game client. Does not do anything until run with runAsClient() * runAsHost(). - * @param holder The JavaFX Pane that the visual elements for the race will be inserted into. */ - public GameClient(Pane holder) { - this.holderPane = holder; + public GameClient() { this.gameKeyBind = GameKeyBind.getInstance(); } @@ -117,10 +105,7 @@ public class GameClient { ViewManager.getInstance().setProperty("serverName", regattaData.getRegattaName()); ViewManager.getInstance().setProperty("mapName", regattaData.getCourseName()); - getServerThread().setConnectionErrorListener((eMessage) -> { - ViewManager.getInstance().showErrorSnackBar(eMessage); - //destroyClientToServerThread(); - }); + getServerThread().setConnectionErrorListener((eMessage) -> ViewManager.getInstance().showErrorSnackBar(eMessage)); this.lobbyController = ViewManager.getInstance().goToLobby(true); @@ -129,18 +114,11 @@ public class GameClient { } } - private void destroyClientToServerThread() { - socketThread.closeSocket(); - socketThread = null; - } - /** * Connect to a game as the host at the given address and starts the visualiser. - * @param ipAddress IP to connect to. - * @param portNumber Port to connect to. */ public ServerDescription runAsHost( - String ipAddress, Integer portNumber, String serverName, Integer maxPlayers, String race, + String serverName, Integer maxPlayers, String race, Integer numLegs, Boolean tokensEnabled ) { XMLGenerator.setDefaultRaceName(serverName); @@ -156,7 +134,7 @@ public class GameClient { } try { - startClientToServerThread(ipAddress, 4942); + startClientToServerThread("localhost", 4942); } catch (IOException e) { showConnectionError("Cannot connect to server as host"); } @@ -191,7 +169,8 @@ public class GameClient { this.lobbyController = ViewManager.getInstance().goToLobby(false); ViewManager.getInstance().setPlayerList(clientLobbyList); - return new ServerDescription(serverName, regattaData.getCourseName(), GameState.getNumberOfPlayers(), GameState.getCapacity(), ipAddress, 4942); + return new ServerDescription(serverName, regattaData.getCourseName(), GameState.getNumberOfPlayers(), GameState.getCapacity(), + "localhost", 4942); } private void tearDownConnection() { @@ -294,10 +273,12 @@ public class GameClient { case CHATTER_TEXT: Pair playerIdMessagePair = StreamParser .extractChatterText(packet); - raceView.updateChatHistory( - allBoatsMap.get(playerIdMessagePair.getKey()).getColour(), - playerIdMessagePair.getValue() - ); + if (playerIdMessagePair != null) { + raceView.updateChatHistory( + allBoatsMap.get(playerIdMessagePair.getKey()).getColour(), + playerIdMessagePair.getValue() + ); + } } } } @@ -333,8 +314,6 @@ public class GameClient { positionData.getLon(), positionData.getHeading(), positionData.getGroundSpeed()); } - } else if (positionData.getType() == DeviceType.MARK_TYPE) { - //CompoundMark mark = courseData.getCompoundMarks().get(positionData.getDeviceId()); } } @@ -372,21 +351,17 @@ public class GameClient { ClientYacht clientYacht = allBoatsMap.get((int) boatData[0]); clientYacht.setEstimateTimeTillNextMark(raceState.getRaceTime() - boatData[1]); clientYacht.setEstimateTimeAtFinish(boatData[2]); -// int legNumber = (int) boatData[3]; clientYacht.setBoatStatus((int) boatData[4]); -// if (legNumber != clientYacht.getLegNumber()) { -// clientYacht.setLegNumber(legNumber); -// } } - if (raceFinished) { - raceViewController.showFinishDialog(finishedBoats); + if (raceFinished && !raceState.getRaceFinished()) { + raceState.setRaceFinished(); Sounds.playFinishSound(); + raceViewController.showFinishDialog(finishedBoats); // close(); // ViewManager.getInstance().getGameClient().stopGame(); //loadFinishScreenView(); } - raceState.setRaceFinished(); } } @@ -397,10 +372,6 @@ public class GameClient { } } - private void close() { - socketThread.setSocketToClose(); - } - /** * Handle the key-pressed event from the text field. * @param e The key event triggering this call @@ -527,10 +498,6 @@ public class GameClient { return socketThread; } - public List getPlayerNames(){ - return Collections.unmodifiableList(clientLobbyList.sorted()); - } - public void stopGame() { GameState.setCurrentStage(GameStages.CANCELLED); if (server != null) server.terminate(); diff --git a/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java b/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java deleted file mode 100644 index edd805e1..00000000 --- a/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java +++ /dev/null @@ -1,97 +0,0 @@ -package seng302.visualiser.controllers; - -import java.io.IOException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; -import java.util.List; -import java.util.ResourceBundle; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import javafx.fxml.FXML; -import javafx.fxml.FXMLLoader; -import javafx.fxml.Initializable; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableView; -import javafx.scene.control.cell.PropertyValueFactory; -import javafx.scene.input.MouseEvent; -import javafx.scene.layout.AnchorPane; -import javafx.scene.layout.GridPane; -import javafx.scene.layout.Pane; -import seng302.model.ClientYacht; -import seng302.utilities.Sounds; - -public class FinishScreenViewController implements Initializable { - - @FXML - private GridPane finishScreenGridPane; - @FXML - private TableView finishOrderTable; - @FXML - private TableColumn posCol; - @FXML - private TableColumn boatNameCol; - @FXML - private TableColumn shortNameCol; - @FXML - private TableColumn countryCol; - - ObservableList data = FXCollections.observableArrayList(); - - @Override - public void initialize(URL location, ResourceBundle resources) { - finishScreenGridPane.getStylesheets() - .add(getClass().getResource("/css/Master.css").toString()); - finishOrderTable.getStylesheets().add(getClass().getResource("/css/Master.css").toString()); - - // set up data for table - finishOrderTable.setItems(data); - - // setting table col data - posCol.setCellValueFactory( - new PropertyValueFactory<>("position") - ); - boatNameCol.setCellValueFactory( - new PropertyValueFactory<>("boatName") - ); - shortNameCol.setCellValueFactory( - new PropertyValueFactory<>("shortName") - ); - countryCol.setCellValueFactory( - new PropertyValueFactory<>("country") - ); - finishOrderTable.refresh(); - } - - public void setFinishers(Collection participants) { - List sorted = new ArrayList<>(participants); - sorted.sort(Comparator.comparingInt(ClientYacht::getPlacing)); - finishOrderTable.getItems().setAll(sorted); - } - - private void setContentPane(String jfxUrl) { - try { - // get the main controller anchor pane (FinishView -> MainView) - AnchorPane contentPane = (AnchorPane) finishScreenGridPane.getParent(); - contentPane.getChildren().removeAll(); - contentPane.getChildren().clear(); - contentPane.getStylesheets().add(getClass().getResource("/css/master.css").toString()); - contentPane.getChildren() - .addAll((Pane) FXMLLoader.load(getClass().getResource(jfxUrl))); - } catch (javafx.fxml.LoadException e) { - System.out.println("[Controller] FXML load exception"); - } catch (IOException e) { - System.out.println("[Controller] IO exception"); - } - } - - public void switchToStartScreenView() { - Sounds.playButtonClick(); - ViewManager.getInstance().goToStartView(); - } - - public void playButtonHoverSound(MouseEvent mouseEvent) { - Sounds.playHoverSound(); - } -} diff --git a/src/main/java/seng302/visualiser/controllers/ViewManager.java b/src/main/java/seng302/visualiser/controllers/ViewManager.java index 1e3ab4ce..28a9f1b2 100644 --- a/src/main/java/seng302/visualiser/controllers/ViewManager.java +++ b/src/main/java/seng302/visualiser/controllers/ViewManager.java @@ -79,7 +79,7 @@ public class ViewManager { decorator.applyCss(); decorator.getStylesheets() .add(getClass().getResource("/css/Master.css").toExternalForm()); - gameClient = new GameClient(decorator); + gameClient = new GameClient(); setDecorator(decorator); stage.getIcons().add(new Image(getClass().getResourceAsStream("/PP.png"))); diff --git a/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java b/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java index fcd33e0d..3cf9fc5e 100644 --- a/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java +++ b/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java @@ -115,7 +115,7 @@ public class ServerCreationController implements Initializable { */ private void createServer() { ServerDescription serverDescription = ViewManager.getInstance().getGameClient() - .runAsHost("localhost", 4941, serverName.getText(), (int) maxPlayersSlider + .runAsHost(serverName.getText(), (int) maxPlayersSlider .getValue(), mapMaker.getCurrentRacePath(), (int) legsSlider.getValue(), pickupsCheckBox.isSelected()); if (serverDescription == null){ diff --git a/src/main/resources/views/FinishScreenView.fxml b/src/main/resources/views/FinishScreenView.fxml deleted file mode 100644 index 0ebdf261..00000000 --- a/src/main/resources/views/FinishScreenView.fxml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -