diff --git a/src/main/java/seng202/group9/Controller/Session.java b/src/main/java/seng202/group9/Controller/Session.java index 29811ae..10db795 100644 --- a/src/main/java/seng202/group9/Controller/Session.java +++ b/src/main/java/seng202/group9/Controller/Session.java @@ -26,7 +26,7 @@ public class Session implements Serializable { private HashMap airlineFilter;//storage for filter values for airports private HashMap routeFilter;//storage for filter values for airports private String selectedgraphagainst; - private String selectedgraphoptions; + private ArrayList selectedgraphoptions; private Boolean usefilter; private Boolean forceGraph; private String selectedDataToGraph; @@ -189,11 +189,11 @@ public class Session implements Serializable { this.selectedgraphagainst = selectedgraphagainst; } - public String getSelectedgraphoptions() { + public ArrayList getSelectedgraphoptions() { return selectedgraphoptions; } - public void setSelectedgraphoptions(String selectedgraphoptions) { + public void setSelectedgraphoptions(ArrayList selectedgraphoptions) { this.selectedgraphoptions = selectedgraphoptions; } diff --git a/src/main/java/seng202/group9/GUI/BarChooserController.java b/src/main/java/seng202/group9/GUI/BarChooserController.java index 19089cf..bab2b02 100644 --- a/src/main/java/seng202/group9/GUI/BarChooserController.java +++ b/src/main/java/seng202/group9/GUI/BarChooserController.java @@ -23,8 +23,6 @@ public class BarChooserController extends Controller{ @FXML ChoiceBox datatypechooser; @FXML - ListView graph_against; - @FXML ListView graph_options; @FXML CheckBox usefilter; @@ -32,18 +30,17 @@ public class BarChooserController extends Controller{ ObservableList airportOptions = FXCollections.observableArrayList("Name", "ICAO", "IATA FFA", "Altitude", "City", "Country"); - ObservableList airlineOptions = FXCollections.observableArrayList("ID", "Name", "ICAO", "IATA", "Alias", + ObservableList airlineOptions = FXCollections.observableArrayList("Name", "ICAO", "IATA", "Alias", "Call Sign", "Active", "Country"); - ObservableList routeOptions = FXCollections.observableArrayList("ID", "Stops", "Codeshare", "Equipment", "Airline", + ObservableList routeOptions = FXCollections.observableArrayList("Stops", "Codeshare", "Equipment", "Airline", "Departure Airport", "Arival airport"); ArrayList allOptions = new ArrayList(); public void buildGraph() { Session currentsession = this.getParent().getSession(); - currentsession.setSelectedgraphoptions(graph_against.getSelectionModel().getSelectedItem().toString()); - currentsession.setSelectedgraphagainst(graph_options.getSelectionModel().getSelectedItem().toString()); + currentsession.setSelectedgraphoptions(graph_options.getSelectionModel().getSelectedItem().toString()); currentsession.setUsefilter(usefilter.isSelected()); currentsession.setForceGraph(Boolean.FALSE); replaceSceneContent(SceneCode.ROUTE_ANALYSER); @@ -53,7 +50,6 @@ public class BarChooserController extends Controller{ public void changeTables(){ int temp = datatypechooser.getSelectionModel().getSelectedIndex(); - graph_against.setItems(allOptions.get(temp)); graph_options.setItems(allOptions.get(temp)); } @@ -68,8 +64,6 @@ public class BarChooserController extends Controller{ changeTables(); } }); - graph_against.setItems(airportOptions); - graph_against.getSelectionModel().selectFirst(); graph_options.setItems(airportOptions); graph_options.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); graph_options.getSelectionModel().selectFirst(); diff --git a/src/main/java/seng202/group9/GUI/BarGraphController.java b/src/main/java/seng202/group9/GUI/BarGraphController.java index ea75d83..b96c1e4 100644 --- a/src/main/java/seng202/group9/GUI/BarGraphController.java +++ b/src/main/java/seng202/group9/GUI/BarGraphController.java @@ -4,7 +4,6 @@ package seng202.group9.GUI; import javafx.fxml.FXML; import javafx.scene.chart.BarChart; import javafx.scene.chart.XYChart; -import seng202.group9.Controller.App; import seng202.group9.Controller.Dataset; import seng202.group9.Controller.Session; import seng202.group9.Core.Airline; @@ -27,74 +26,71 @@ public class BarGraphController extends Controller { //Used to store the data needed for making the tables. private ArrayList current_routes; private Dataset currentdata = null; - private HashMap useddata = new HashMap(); private Session currentsession; + private HashMap stopsData = new HashMap(); + private HashMap codeShareData = new HashMap(); + private HashMap equipmentData = new HashMap(); + private HashMap airlineData = new HashMap(); + private HashMap departureAirportData = new HashMap(); + private HashMap arrivalAirportData = new HashMap(); + private void datasetupCustomRoute(ArrayList current_routes){ + //Takes out the specified field then adds to the used data dict. + for (Route entry : current_routes){ + if (stopsData.containsKey(entry.getStops())){ + stopsData.replace(String.valueOf(entry.getStops()),stopsData.get(entry.getStops())+1); + }else { + stopsData.put(String.valueOf(entry.getStops()),1); + } + if (codeShareData.containsKey(entry.getCode())){ + codeShareData.replace(String.valueOf(entry.getCode()),codeShareData.get(entry.getCode())+1); + }else { + codeShareData.put(String.valueOf(entry.getStops()),1); + } + if (equipmentData.containsKey(entry.getEquipment())){ + equipmentData.replace(String.valueOf(entry.getEquipment()),equipmentData.get(entry.getEquipment())+1); + }else { + stopsData.put(String.valueOf(entry.getEquipment()),1); + } + if (airlineData.containsKey(entry.getAirlineName())){ + airlineData.replace(String.valueOf(entry.getAirlineName()), airlineData.get(entry.getAirlineName())+1); + }else { + airlineData.put(String.valueOf(entry.getAirline()),1); + } + if (departureAirportData.containsKey(entry.getDepartureAirport())){ + departureAirportData.replace(String.valueOf(entry.getDepartureAirport()),stopsData.get(entry.getDepartureAirport())+1); + }else { + departureAirportData.put(String.valueOf(entry.getDepartureAirport()),1); + } + if (arrivalAirportData.containsKey(entry.getArrivalAirport())){ + arrivalAirportData.replace(String.valueOf(entry.getArrivalAirport()),arrivalAirportData.get(entry.getArrivalAirport())+1); + }else { + arrivalAirportData.put(String.valueOf(entry.getArrivalAirport()),1); + } + } + } /** * Takes data from the current dataset and places it into the displayed bar graph. */ - public void build_graph(){ - //Takes routes from the full dataset. - current_routes = currentdata.getRoutes(); - //datasetup(current_routes); - //Builds series needed for the graph. + public void buildRouteGraph(){ + XYChart.Series seriesStops = new XYChart.Series(); + XYChart.Series seriesCode = new XYChart.Series(); + XYChart.Series seriesEquipment = new XYChart.Series(); + XYChart.Series seriesAirline = new XYChart.Series(); XYChart.Series seriesArivals = new XYChart.Series(); XYChart.Series seriesDeparts = new XYChart.Series(); - seriesArivals.setName("Arriving routes"); - seriesDeparts.setName("Departs routes"); - for (String airport : useddata.keySet()){ - ArrayList temp = useddata.get(airport); - seriesArivals.getData().add(new XYChart.Data(airport,temp.get(0))); - seriesDeparts.getData().add(new XYChart.Data(airport,temp.get(1))); - } - //Gives the formatted data to the graph. - analyserGraph.getData().addAll(seriesArivals,seriesDeparts); - } - - /** - * Takes the raw list of routes and fills the used data dictionary with the appropriate data to be displayed - * @param current_routes - */ - - private int stops; - private String codeShare; - private String equipment; - private String airlineName; - private String departureAirport; - private String arrivalAirport; - -/** private void datasetupCustomarAirport(ArrayList current_air_ports){ - //Takes out the specified field then adds to the used data dict. - for (Airport entry : current_air_ports){ - currentsession.getSelectedgraphagainst() == "Name"; - name = entry.getName(); - currentsession.getSelectedgraphagainst() == "ICAO"; - name = entry.getICAO(); - currentsession.getSelectedgraphagainst() == "IATA_FFA" - name = entry.getIATA_FFA(); - currentsession.getSelectedgraphagainst() == "City" - currentsession.getSelectedgraphagainst() == "Country" - name = entry.getCountryName(); - - if (useddata.containsKey(name)){ - int temp = useddata.get(name); - useddata.replace(name,temp+1); - }else { - Integer temp = 1; - useddata.put(name,temp); - } - } + seriesStops.setName("Stops"); + seriesCode.setName("CodeShare"); + seriesEquipment.setName("Equipment"); + seriesAirline.setName("Airline"); + seriesArivals.setName("Arrivals"); + seriesDeparts.setName("Departures"); + //Gives the formatted data to the graph. + analyserGraph.getData().add(seriesDeparts); } -*/ - - private void datasetupCustomRoute(ArrayList current_routes){ - //Takes out the specified field (Currently departure airport and arrival airport) then adds to the used data dict. - //if(currentsession.getSelectedgraphagainst() = ""){ - //} - } /** * Takes the current dataset then loads the data to the graph using build graph. @@ -147,8 +143,8 @@ public class BarGraphController extends Controller { d = currentdata.getRoutes(); } datasetupCustomRoute(d); + buildRouteGraph(); } - build_graph(); } } diff --git a/src/main/resources/bar_graph_chooser.fxml b/src/main/resources/bar_graph_chooser.fxml index f7581f5..aea758f 100644 --- a/src/main/resources/bar_graph_chooser.fxml +++ b/src/main/resources/bar_graph_chooser.fxml @@ -36,19 +36,10 @@ - - - - - - - - - @@ -57,6 +48,7 @@ +