From ff79599c9be834d1a9827d744640d9b216aebb78 Mon Sep 17 00:00:00 2001 From: Michael Wilson Date: Sat, 17 Sep 2016 20:46:23 +1200 Subject: [PATCH] Calculator Implimented. --- .../seng202/group9/Controller/SceneCode.java | 3 +- .../group9/GUI/DistCalcController.java | 63 ++++++++++++++ .../seng202/group9/GUI/MenuController.java | 3 + src/main/resources/airport_dist_calc.fxml | 84 +++++++++++++++++++ src/main/resources/menu.fxml | 5 +- 5 files changed, 156 insertions(+), 2 deletions(-) create mode 100644 src/main/java/seng202/group9/GUI/DistCalcController.java create mode 100644 src/main/resources/airport_dist_calc.fxml diff --git a/src/main/java/seng202/group9/Controller/SceneCode.java b/src/main/java/seng202/group9/Controller/SceneCode.java index 0102cf0..b93cb68 100644 --- a/src/main/java/seng202/group9/Controller/SceneCode.java +++ b/src/main/java/seng202/group9/Controller/SceneCode.java @@ -7,7 +7,8 @@ public enum SceneCode { INITIAL(""), AIRLINE_SUMMARY("airline_summary.fxml"), AIRLINE_RAW_DATA("airline_raw_data.fxml"), AIRPORT_SUMMARY("airport_summary.fxml"), AIRPORT_RAW_DATA("airport_raw_data.fxml"), ROUTE_SUMMARY("routes_summary.fxml"), ROUTE_RAW_DATA("route_raw_data.fxml"), FLIGHT_SUMMARY("flight_data_summary.fxml"), - FLIGHT_RAW_DATA("flight_raw_data.fxml"), AIRPORT_ANALYSER("airport_analyser.fxml"), ROUTE_ANALYSER("route_analyser.fxml");; + FLIGHT_RAW_DATA("flight_raw_data.fxml"), AIRPORT_ANALYSER("airport_analyser.fxml"), ROUTE_ANALYSER("route_analyser.fxml"), + AIRPORT_DIST_CALC("airport_dist_calc.fxml"); private String filePath; diff --git a/src/main/java/seng202/group9/GUI/DistCalcController.java b/src/main/java/seng202/group9/GUI/DistCalcController.java new file mode 100644 index 0000000..626d7ff --- /dev/null +++ b/src/main/java/seng202/group9/GUI/DistCalcController.java @@ -0,0 +1,63 @@ +package seng202.group9.GUI; + +import javafx.beans.property.SimpleStringProperty; +import javafx.beans.property.StringProperty; +import javafx.fxml.FXML; +import javafx.scene.control.ChoiceBox; +import javafx.scene.control.Label; +import javafx.scene.control.ListView; +import javafx.scene.text.Text; +import seng202.group9.Controller.Dataset; +import seng202.group9.Core.Airport; +import seng202.group9.Controller.App; +import seng202.group9.Controller.Dataset; +import seng202.group9.Core.Airline; +import java.util.ArrayList; +import java.util.HashMap; +import javafx.application.Application; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.scene.chart.*; +import javafx.scene.Group; + +/** + * Created by michael on 17/09/2016. + */ +public class DistCalcController extends Controller { + @FXML + ListView airportOne; + @FXML + ListView airportTwo; + @FXML + Label answerBox; + + Dataset currentData = null; + HashMap current_Airports; + SimpleStringProperty bound = new SimpleStringProperty("Answer"); + + private void fill_boxes(){ + HashMap current_Airports = currentData.getAirportDictionary(); + ArrayList names = new ArrayList(); + for(String name : current_Airports.keySet()){ + names.add(name); + } + ObservableList usablenames = FXCollections.observableArrayList(names); + airportOne.setItems(usablenames); + airportTwo.setItems(usablenames); + } + + public void calculateButton(){ + Airport airport1 = currentData.getAirports().get((airportOne.getSelectionModel().getSelectedIndices().get(0))); + Airport airport2 = currentData.getAirports().get((airportTwo.getSelectionModel().getSelectedIndices().get(0))); + double distance = airport1.calculateDistance(airport2); + bound.setValue(String.valueOf(Math.round(distance)) + "km"); + System.out.println(bound); + } + + public void load(){ + currentData = getParent().getCurrentDataset(); + answerBox.textProperty().bind(bound); + fill_boxes(); + } + +} diff --git a/src/main/java/seng202/group9/GUI/MenuController.java b/src/main/java/seng202/group9/GUI/MenuController.java index 580a3c1..9231ca8 100644 --- a/src/main/java/seng202/group9/GUI/MenuController.java +++ b/src/main/java/seng202/group9/GUI/MenuController.java @@ -9,6 +9,7 @@ import javafx.fxml.Initializable; import javafx.scene.control.Alert; import seng202.group9.Controller.App; +import seng202.group9.Controller.Dataset; import seng202.group9.Controller.SceneCode; public class MenuController extends Controller{ @@ -74,6 +75,8 @@ public class MenuController extends Controller{ //nothing to load } + public void veiwDistCalc(){replaceSceneContent(SceneCode.AIRPORT_DIST_CALC);} + public void initialize(URL arg0, ResourceBundle arg1) { // TODO Auto-generated method stub diff --git a/src/main/resources/airport_dist_calc.fxml b/src/main/resources/airport_dist_calc.fxml new file mode 100644 index 0000000..b0ed03d --- /dev/null +++ b/src/main/resources/airport_dist_calc.fxml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +