From 9a76fa592c88fd976326721fd2c6b5e02012db8b Mon Sep 17 00:00:00 2001 From: Connor Taylor-Brown Date: Wed, 26 Jul 2017 17:22:54 +1200 Subject: [PATCH] Added keyboard handling to RaceController - Capture each KeyEvent with EventFilter over SplitPane race container #story[1010] --- .../Controllers/ConnectionController.java | 1 - .../visualiser/Controllers/RaceController.java | 17 ++++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/ConnectionController.java b/racevisionGame/src/main/java/visualiser/Controllers/ConnectionController.java index dd309516..87477bea 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/ConnectionController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/ConnectionController.java @@ -97,7 +97,6 @@ public class ConnectionController extends Controller { }catch(NumberFormatException e){ System.err.println("Port number entered is not a number"); } - } /** diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java index ffcfcb54..427e152c 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java @@ -5,9 +5,12 @@ import javafx.animation.AnimationTimer; import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.scene.chart.LineChart; import javafx.scene.control.*; +import javafx.scene.control.Label; +import javafx.scene.input.KeyEvent; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; @@ -16,8 +19,11 @@ import javafx.util.Callback; import network.Messages.Enums.RaceStatusEnum; import shared.model.Leg; import visualiser.app.VisualiserInput; +import visualiser.gameController.Keys.ControlKey; +import visualiser.gameController.Keys.KeyFactory; import visualiser.model.*; +import java.awt.*; import java.net.URL; import java.text.DecimalFormat; import java.util.ResourceBundle; @@ -79,6 +85,14 @@ public class RaceController extends Controller { @Override public void initialize(URL location, ResourceBundle resources) { + // Initialise keyboard handler + race.addEventFilter(KeyEvent.KEY_PRESSED, event -> { + String codeString = event.getCode().toString(); + ControlKey controlKey = KeyFactory.getKey(codeString); + if(controlKey != null) { + System.out.println(controlKey.toString() + " is Pressed."); + } + }); } @@ -278,8 +292,6 @@ public class RaceController extends Controller { //Add to scene. canvasBase.getChildren().add(0, raceCanvas); - - } @@ -345,7 +357,6 @@ public class RaceController extends Controller { } - /** * Timer which monitors the race. */