From 819cdc49abd0e3fe67b5d8ea921bba3f02bad20a Mon Sep 17 00:00:00 2001 From: Jessica Syder Date: Sun, 24 Sep 2017 17:59:36 +1300 Subject: [PATCH 1/5] Created a slider on the Host Game screen. - slider has min and max minutes - a label is updated as the slider is moved - the value of the slider selection is saved - slider resizes appropriately with the window #story[1323] --- .../Controllers/HostGameController.java | 29 +++++++++++++++++++ .../resources/visualiser/scenes/hostGame.fxml | 28 +++++++++++++----- 2 files changed, 49 insertions(+), 8 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/HostGameController.java b/racevisionGame/src/main/java/visualiser/Controllers/HostGameController.java index 33583a38..e6b27a29 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/HostGameController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/HostGameController.java @@ -4,6 +4,8 @@ import javafx.application.Platform; import javafx.fxml.FXML; import javafx.scene.control.Alert; import javafx.scene.control.ButtonType; +import javafx.scene.control.Label; +import javafx.scene.control.Slider; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import mock.app.Event; @@ -28,8 +30,12 @@ import java.util.logging.Logger; */ public class HostGameController extends Controller { private @FXML ImageView mapImage; + private @FXML Slider sliderLength; + private @FXML Label lblLength; private ArrayList listOfMaps; private int currentMapIndex = 0; + private int selectedRaceLength; // in minutes + private final int MAX_RACE_LENGTH = 30; // in minutes private DatagramSocket udpSocket; private MatchBrowserInterface matchBrowserInterface; @@ -37,8 +43,31 @@ public class HostGameController extends Controller { loadMaps(); this.udpSocket = MatchBrowserSingleton.getInstance().getUdpSocket(); this.matchBrowserInterface = MatchBrowserSingleton.getInstance().getMatchBrowserInterface(); + setRaceLengthSlider(); } + /** + * Sets up the values and display for a slider object which allows a user + * to select how many minutes long they would like their race to be. + */ + private void setRaceLengthSlider(){ + // set the listener to update the label + sliderLength.valueProperty().addListener((ov, old_val, new_val) -> { + selectedRaceLength = new_val.intValue(); + if (selectedRaceLength == 1){ + lblLength.setText(selectedRaceLength + " minute."); + } else { + lblLength.setText(selectedRaceLength + " minutes."); + } + }); + + // set values and marks to be displayed + sliderLength.setMin(1); + sliderLength.setMax(MAX_RACE_LENGTH); + sliderLength.setShowTickLabels(true); + sliderLength.setMajorTickUnit(MAX_RACE_LENGTH-1); + sliderLength.setBlockIncrement(1); + } /** diff --git a/racevisionGame/src/main/resources/visualiser/scenes/hostGame.fxml b/racevisionGame/src/main/resources/visualiser/scenes/hostGame.fxml index cf82c285..3218c802 100644 --- a/racevisionGame/src/main/resources/visualiser/scenes/hostGame.fxml +++ b/racevisionGame/src/main/resources/visualiser/scenes/hostGame.fxml @@ -3,6 +3,7 @@ + @@ -12,19 +13,20 @@ - + - - - + + + - - - + + + + -