From e48066b6c404ef5aa76b33fc9df3f6158a6de2ca Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Mon, 3 Oct 2016 03:17:34 +1300 Subject: [PATCH] Added COuntry with the most Incoming FLights --- .../group9/GUI/RouteGraphController.java | 83 ++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) diff --git a/src/main/java/seng202/group9/GUI/RouteGraphController.java b/src/main/java/seng202/group9/GUI/RouteGraphController.java index c69caa5..5f01452 100644 --- a/src/main/java/seng202/group9/GUI/RouteGraphController.java +++ b/src/main/java/seng202/group9/GUI/RouteGraphController.java @@ -89,6 +89,8 @@ public class RouteGraphController extends Controller{ //load graphs loadAirlineGraph(); loadDestGraph(); + loadSourceGraph(); + loadInCountryGraph(); } public void loadAirlineGraph(){ @@ -129,7 +131,7 @@ public class RouteGraphController extends Controller{ } public void loadDestGraph(){ - destGraph.setTitle("Top 10 Airports with Arriving Routes"); + destGraph.setTitle("Top 10 Destination Airports"); destXAxis.setLabel("Airports"); XYChart.Series series = new XYChart.Series<>(); @@ -171,6 +173,85 @@ public class RouteGraphController extends Controller{ destGraph.getData().add(series); } + public void loadSourceGraph(){ + sourceGraph.setTitle("Top 10 Outgoing Airports"); + sourceXAxis.setLabel("Airports"); + + XYChart.Series series = new XYChart.Series<>(); + series.setName("Number of Routes"); + + HashMap airports = new HashMap<>(); + for (Route route: routesFiltered){ + if (route.getSourceAirport() != null) { + if (airports.containsKey(route.getSourceAirport().getName())) { + airports.put(route.getSourceAirport().getName(), airports.get(route.getSourceAirport().getName()) + 1); + }else{ + + airports.put(route.getSourceAirport().getName(), 1); + } + } + } + + LinkedHashMap maxAirports = new LinkedHashMap<>(); + int length = 10; + if (airports.size() < 10){ + length = airports.size(); + } + for (int i = 0 ; i < length; i ++) { + int max = 0; + String maxAirport = null; + for (String airport: airports.keySet()){ + if (airports.get(airport) > max){ + max = airports.get(airport); + maxAirport = airport; + } + } + maxAirports.put(maxAirport, max); + airports.remove(maxAirport); + } + + for (String airport: maxAirports.keySet()){ + series.getData().add(new XYChart.Data(airport, maxAirports.get(airport))); + } + sourceGraph.getData().add(series); + } + + public void loadInCountryGraph(){ + inCountryGraph.setTitle("Top 10 Countries Visited."); + inCountryXAxis.setLabel("Countries"); + XYChart.Series series = new XYChart.Series<>(); + series.setName("Number of Countries"); + LinkedHashMap countries = new LinkedHashMap<>(); + for (Route route: routesFiltered) { + Airport dest = route.getDestinationAirport(); + if (dest != null){ + if (countries.containsKey(dest.getCountryName())) { + countries.put(dest.getCountryName(), countries.get(dest.getCountryName()) + 1); + } else { + countries.put(dest.getCountryName(), 1); + } + } + } + System.out.println(countries.size()); + int length = 10; + if (countries.size() < 10){ + length = countries.size(); + } + for (int i = 0 ; i < length; i ++) { + int max = 0; + String maxCountry = null; + for (String country: countries.keySet()){ + if (countries.get(country) > max){ + maxCountry = country; + max = countries.get(country); + } + } + series.getData().add(new XYChart.Data(maxCountry, max)); + countries.remove(maxCountry); + } + + inCountryGraph.getData().add(series); + } public void goToRawData(){ replaceSceneContent(SceneCode.ROUTE_RAW_DATA);