Compare commits

..

No commits in common. 'f07fc76a6dbfe02f76571262050eba2f967f19a5' and '1034ee6731ac3e24c795f0efc3c0be6a8a0440ef' have entirely different histories.

Binary file not shown.

@ -87,7 +87,7 @@ public class App extends Application
if (datasets.get(i).getName().equals(session.getCurrentDataset())) { if (datasets.get(i).getName().equals(session.getCurrentDataset())) {
currentDataset = datasets.get(i); currentDataset = datasets.get(i);
if (session.getFilteredAirlines().size() == 0 || session.getFilteredAirlines() == null) { if (session.getFilteredAirlines().size() == 0) {
HashMap<Integer, String> airlinesHM = new HashMap<Integer, String>(); HashMap<Integer, String> airlinesHM = new HashMap<Integer, String>();
ArrayList<Airline> airlines = currentDataset.getAirlines(); ArrayList<Airline> airlines = currentDataset.getAirlines();
for (int index = 0; index < airlines.size(); index++) { for (int index = 0; index < airlines.size(); index++) {
@ -96,7 +96,7 @@ public class App extends Application
session.setFilteredAirlines(airlinesHM); session.setFilteredAirlines(airlinesHM);
} }
if (session.getFilteredAirports().size() == 0 || session.getFilteredAirports() == null) { if (session.getFilteredAirports().size() == 0) {
HashMap<Integer, String> airportsHM = new HashMap<Integer, String>(); HashMap<Integer, String> airportsHM = new HashMap<Integer, String>();
ArrayList<Airport> airports = currentDataset.getAirports(); ArrayList<Airport> airports = currentDataset.getAirports();
for (int index = 0; index < airports.size(); index++) { for (int index = 0; index < airports.size(); index++) {
@ -105,14 +105,15 @@ public class App extends Application
session.setFilteredAirports(airportsHM); session.setFilteredAirports(airportsHM);
} }
if (session.getFilteredRoutes().size() == 0 || session.getFilteredRoutes() == null) { if (session.getFilteredRoutes().size() == 0) {
HashMap<Integer, String> routesHM = new HashMap<Integer, String>(); HashMap<Integer, String> routesHM = new HashMap<Integer, String>();
ArrayList<Route> routes = currentDataset.getRoutes(); ArrayList<Route> routes = currentDataset.getRoutes();
for (int index = 0; index < routes.size(); index++) { for (int index = 0; index < routes.size(); index++) {
routesHM.put(index, routes.get(index).getUniqueKey()); routesHM.put(index, routes.get(index).getUniqueKey());
} }
session.setFilteredRoutes(routesHM); session.setFilteredAirports(routesHM);
} }
//session.setFilteredRoutes();
} }
} }
} }
@ -254,27 +255,6 @@ public class App extends Application
public void setCurrentDataset(Dataset dataset){ public void setCurrentDataset(Dataset dataset){
currentDataset = dataset; currentDataset = dataset;
session.setCurrentDataset(currentDataset.getName()); session.setCurrentDataset(currentDataset.getName());
HashMap<Integer, String> airlinesHM = new HashMap<Integer, String>();
ArrayList<Airline> airlines = currentDataset.getAirlines();
for (int index = 0; index < airlines.size(); index++) {
airlinesHM.put(index, airlines.get(index).getName());
}
session.setFilteredAirlines(airlinesHM);
HashMap<Integer, String> airportsHM = new HashMap<Integer, String>();
ArrayList<Airport> airports = currentDataset.getAirports();
for (int index = 0; index < airports.size(); index++) {
airportsHM.put(index, airports.get(index).getName());
}
session.setFilteredAirports(airportsHM);
HashMap<Integer, String> routesHM = new HashMap<Integer, String>();
ArrayList<Route> routes = currentDataset.getRoutes();
for (int index = 0; index < routes.size(); index++) {
routesHM.put(index, routes.get(index).getUniqueKey());
}
session.setFilteredRoutes(routesHM);
} }
/** /**

@ -113,11 +113,11 @@ public class AirlineGraphController extends Controller{
countries.put(airline.getCountryName(), 1); countries.put(airline.getCountryName(), 1);
} }
} }
int length = 10; int length = 10;
if (countries.size() < 10){ if (airlinesFiltered.length < 10){
length = countries.size(); length = airlinesFiltered.length;
} }
for (int i = 0 ; i < length; i ++) { for (int i = 0 ; i < length; i ++) {
int max = 0; int max = 0;
String maxCountry = null; String maxCountry = null;
@ -130,6 +130,7 @@ public class AirlineGraphController extends Controller{
series.getData().add(new XYChart.Data<String, Integer>(maxCountry, max)); series.getData().add(new XYChart.Data<String, Integer>(maxCountry, max));
countries.remove(maxCountry); countries.remove(maxCountry);
} }
countryGraph.getData().add(series); countryGraph.getData().add(series);
} }

@ -90,8 +90,8 @@ public class AirportGraphController extends Controller{
} }
int length = 10; int length = 10;
if (countries.size() < 10){ if (airportsFiltered.length < 10){
length = countries.size(); length = airportsFiltered.length;
} }
for (int i = 0 ; i < length; i ++) { for (int i = 0 ; i < length; i ++) {
int max = 0; int max = 0;

@ -131,9 +131,9 @@ public class AirportRDController extends Controller{
/** /**
* Analyses the current data and creates a graph based on the data. * Analyses the current data and creates a graph based on the data.
* * @see PieGraphController
*/ */
public void analyse_Button(){ replaceSceneContent(SceneCode.AIRPORT_GRAPHS);} public void analyse_Button(){ replaceSceneContent(SceneCode.AIRPORT_ANALYSER);}
public void airportSummaryButton() { public void airportSummaryButton() {
replaceSceneContent(SceneCode.AIRPORT_SUMMARY); replaceSceneContent(SceneCode.AIRPORT_SUMMARY);

@ -7,7 +7,6 @@ import javafx.collections.FXCollections;
import javafx.collections.ListChangeListener; import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList; import javafx.collections.ObservableList;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.TableColumn; import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView; import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.control.cell.PropertyValueFactory;
@ -39,14 +38,6 @@ public class AirportRouteMapController extends Controller{
if (!checkDataset()){ if (!checkDataset()){
return; return;
} }
//check if there is internet connectivity
if (!getParent().testInet("maps.google.com")){
Alert alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("No Internet Connection.");
alert.setHeaderText("Unable to Connect to Google Maps");
alert.setContentText("As we are unable to connect to Google Maps all applications which are supposed to display maps may not work as intended.");
alert.showAndWait();
}
currentDataset = getParent().getCurrentDataset(); currentDataset = getParent().getCurrentDataset();
//Sets up map. //Sets up map.
map = new Map(mapView, new RoutePath(), airportsTable); map = new Map(mapView, new RoutePath(), airportsTable);

@ -72,11 +72,9 @@ public class DatasetController extends Controller{
public void openDataset(){ public void openDataset(){
Dataset datasetToOpen = (Dataset) datasetView.getSelectionModel().getSelectedItem(); Dataset datasetToOpen = (Dataset) datasetView.getSelectionModel().getSelectedItem();
if (datasetToOpen != null) { getParent().setCurrentDataset(datasetToOpen);
getParent().setCurrentDataset(datasetToOpen); loadTable();
loadTable(); getParent().getMenuController().replaceSceneContent(getParent().getSession().getSceneDisplayed());
getParent().getMenuController().replaceSceneContent(getParent().getSession().getSceneDisplayed()); ((Stage) openDataset.getScene().getWindow()).close();
((Stage) openDataset.getScene().getWindow()).close();
}
} }
} }

@ -5,7 +5,6 @@ import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections; import javafx.collections.FXCollections;
import javafx.collections.ObservableList; import javafx.collections.ObservableList;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.TableColumn; import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView; import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.control.cell.PropertyValueFactory;
@ -42,14 +41,6 @@ public class EquipByRouteController extends Controller{
if (!checkDataset()){ if (!checkDataset()){
return; return;
} }
//check if there is internet connectivity
if (!getParent().testInet("maps.google.com")){
Alert alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("No Internet Connection.");
alert.setHeaderText("Unable to Connect to Google Maps");
alert.setContentText("As we are unable to connect to Google Maps all applications which are supposed to display maps may not work as intended.");
alert.showAndWait();
}
currentDataset = getParent().getCurrentDataset(); currentDataset = getParent().getCurrentDataset();
//Sets up map. //Sets up map.
map = new Map(mapView, new RoutePath(), equipTable); map = new Map(mapView, new RoutePath(), equipTable);

@ -1,7 +1,6 @@
package seng202.group9.GUI; package seng202.group9.GUI;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.TableView; import javafx.scene.control.TableView;
import javafx.scene.web.WebView; import javafx.scene.web.WebView;
import seng202.group9.Controller.Dataset; import seng202.group9.Controller.Dataset;
@ -25,14 +24,6 @@ public class PopUpAirportMapController extends Controller {
@Override @Override
public void load() { public void load() {
//check if there is internet connectivity
if (!getParent().testInet("maps.google.com")){
Alert alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("No Internet Connection.");
alert.setHeaderText("Unable to Connect to Google Maps");
alert.setContentText("As we are unable to connect to Google Maps all applications which are supposed to display maps may not work as intended.");
alert.showAndWait();
}
dataset = getParent().getCurrentDataset(); dataset = getParent().getCurrentDataset();
loadAirports(); loadAirports();
} }
@ -45,4 +36,12 @@ public class PopUpAirportMapController extends Controller {
} }
map = new Map(mapView, routePaths, Map.loadAirports); map = new Map(mapView, routePaths, Map.loadAirports);
} }
public void loadRoutes(ArrayList<Route> routes){
ArrayList<RoutePath> routePaths = new ArrayList<>();
for (Route route: routes){
routePaths.add(route.getRoutePath());
}
map.displayRoutes(routePaths);
}
} }

@ -1,7 +1,6 @@
package seng202.group9.GUI; package seng202.group9.GUI;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.web.WebView; import javafx.scene.web.WebView;
import seng202.group9.Controller.Dataset; import seng202.group9.Controller.Dataset;
import seng202.group9.Core.Route; import seng202.group9.Core.Route;
@ -22,14 +21,6 @@ public class PopUpRouteMapController extends Controller{
@Override @Override
public void load() { public void load() {
//check if there is internet connectivity
if (!getParent().testInet("maps.google.com")){
Alert alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("No Internet Connection.");
alert.setHeaderText("Unable to Connect to Google Maps");
alert.setContentText("As we are unable to connect to Google Maps all applications which are supposed to display maps may not work as intended.");
alert.showAndWait();
}
dataset = getParent().getCurrentDataset(); dataset = getParent().getCurrentDataset();
loadRoutes(); loadRoutes();
} }

@ -1,6 +1,5 @@
package seng202.group9.GUI; package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.chart.BarChart; import javafx.scene.chart.BarChart;
import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.CategoryAxis;
@ -16,7 +15,10 @@ import seng202.group9.Core.Airline;
import seng202.group9.Core.Airport; import seng202.group9.Core.Airport;
import seng202.group9.Core.Route; import seng202.group9.Core.Route;
import java.util.*; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
/** /**
* Created by fwy13 on 2/10/2016. * Created by fwy13 on 2/10/2016.
@ -58,9 +60,9 @@ public class RouteGraphController extends Controller{
@FXML @FXML
private PieChart stopsGraph; private PieChart stopsGraph;
@FXML @FXML
private BarChart zoneGraph; private BarChart contienentGraph;
@FXML @FXML
private CategoryAxis zoneXAxis; private CategoryAxis contienentXAxis;
@Override @Override
public void load() { public void load() {
@ -93,8 +95,6 @@ public class RouteGraphController extends Controller{
loadOutCountryGraph(); loadOutCountryGraph();
loadEquipGraph(); loadEquipGraph();
loadSimilarGraph(); loadSimilarGraph();
loadStopsGraph();
loadZoneGraph();
} }
public void loadAirlineGraph(){ public void loadAirlineGraph(){
@ -328,6 +328,7 @@ public class RouteGraphController extends Controller{
equipGraph.getData().add(series); equipGraph.getData().add(series);
} }
public void loadSimilarGraph(){ public void loadSimilarGraph(){
similarGraph.setTitle("Top 10 Most Similar Routes"); similarGraph.setTitle("Top 10 Most Similar Routes");
similarXAxis.setLabel("Routes"); similarXAxis.setLabel("Routes");
@ -363,66 +364,41 @@ public class RouteGraphController extends Controller{
similarGraph.getData().add(series); similarGraph.getData().add(series);
} }
public void loadStopsGraph(){ /*public void loadStopsGraph(){
stopsGraph.setTitle("Top 10 Most Common Amount of Stops by Routes"); stopsGraph.setTitle("Top 10 Equipment used by Routes");
ArrayList<PieChart.Data> data = new ArrayList<>();
HashMap<Integer, Integer> stops = new HashMap<>();//equipment, count
for (Route route: routesFiltered){
if (stops.containsKey(route.getStops())){
stops.put(route.getStops(), stops.get(route.getStops()) + 1);
}else{
stops.put(route.getStops(), 1);
}
}
for (int stop: stops.keySet()){
stopsGraph.getData().add(new PieChart.Data(String.valueOf(stop), stops.get(stop)));
}
}
public void loadZoneGraph(){
zoneGraph.setTitle("Top Zones With Flights.");
zoneXAxis.setLabel("Zones");
XYChart.Series<String,Integer> series = new XYChart.Series<>(); XYChart.Series<String,Integer> series = new XYChart.Series<>();
series.setName("Number of Zones"); series.setName("Number of Equipment");
LinkedHashMap<String, Integer> zones = new LinkedHashMap<>(); HashMap<String, Integer> equipmentList = new HashMap<>();//equipment, count
for (Route route: routesFiltered) { for (Route route: routesFiltered){
Airport source = route.getSourceAirport(); String equipment[] = route.getEquipment().split(" ");
if (source != null){ for (String equip : equipment){
if (zones.containsKey(source.getTz())) { if (equipmentList.containsKey(equip)){
zones.put(source.getTz(), zones.get(source.getTz()) + 1); equipmentList.put(equip, equipmentList.get(equip) + 1);
} else { }else{
zones.put(source.getTz(), 1); equipmentList.put(equip, 1);
}
}
Airport dest = route.getDestinationAirport();
if (dest != null){
if (zones.containsKey(dest.getTz())) {
zones.put(dest.getTz(), zones.get(dest.getTz()) + 1);
} else {
zones.put(dest.getTz(), 1);
} }
} }
} }
int length = 10; int length = 10;
if (zones.size() < 10){ if (equipmentList.size() < 10){
length = zones.size(); length = equipmentList.size();
} }
for (int i = 0 ; i < length; i ++) { for (int i = 0 ; i < length; i ++) {
int max = 0; int max = 0;
String maxZone = null; String maxEquip = "";
for (String zone: zones.keySet()){ for (String equip: equipmentList.keySet()){
if (zones.get(zone) > max){ if (equipmentList.get(equip) > max){
maxZone = zone; max = equipmentList.get(equip);
max = zones.get(zone); maxEquip = equip;
} }
} }
series.getData().add(new XYChart.Data<String, Integer>(maxZone, max)); series.getData().add(new XYChart.Data<String, Integer>(maxEquip, max));
zones.remove(maxZone); equipmentList.remove(maxEquip);
} }
zoneGraph.getData().add(series);
} equipGraph.getData().add(series);
}*/
public void goToRawData(){ public void goToRawData(){
replaceSceneContent(SceneCode.ROUTE_RAW_DATA); replaceSceneContent(SceneCode.ROUTE_RAW_DATA);

@ -127,10 +127,10 @@ public class RouteRDController extends Controller {
/** /**
* Analyses the current data and creates a graph based on the data. * Analyses the current data and creates a graph based on the data.
* * @see BarGraphController
*/ */
public void analyse_Button() { public void analyse_Button() {
replaceSceneContent(SceneCode.ROUTE_GRAPHS); replaceSceneContent(SceneCode.ROUTE_ANALYSER);
} }
public void routeSummaryButton() { public void routeSummaryButton() {

@ -36,7 +36,6 @@ public class Map {
} }
} }
}); });
} }
public Map(WebView webView, final ArrayList<RoutePath> newRoute, final int type){ public Map(WebView webView, final ArrayList<RoutePath> newRoute, final int type){

@ -28,10 +28,6 @@
center: {lat: 39.144684, lng: -84.510079}, center: {lat: 39.144684, lng: -84.510079},
zoom: 5 zoom: 5
}); });
google.maps.event.addListener(map, 'center_changed', function() {
checkBounds(map);
});
map.setOptions({ minZoom: 2, maxZoom: 18});
new google.maps.Marker({ new google.maps.Marker({
position: {lat: 39.144684, lng: -84.510079}, position: {lat: 39.144684, lng: -84.510079},
@ -46,12 +42,6 @@
zoom: 5 zoom: 5
}); });
google.maps.event.addListener(map, 'center_changed', function() {
checkBounds(map);
});
map.setOptions({ minZoom: 2, maxZoom: 18});
new google.maps.Marker({ new google.maps.Marker({
position: position[0], position: position[0],
map: map, map: map,
@ -64,11 +54,6 @@
center: positions[0], center: positions[0],
zoom: 5 zoom: 5
}); });
google.maps.event.addListener(map, 'center_changed', function() {
checkBounds(map);
});
map.setOptions({ minZoom: 2, maxZoom: 18});
for (var i = 0; i < positions.length; i ++) { for (var i = 0; i < positions.length; i ++) {
new google.maps.Marker({ new google.maps.Marker({
position: positions[i][0], position: positions[i][0],
@ -84,11 +69,6 @@
center: {lat: 39.144684, lng: -84.510079}, center: {lat: 39.144684, lng: -84.510079},
zoom: 15 zoom: 15
}); });
google.maps.event.addListener(map, 'center_changed', function() {
checkBounds(map);
});
map.setOptions({ minZoom: 2, maxZoom: 18});
// CLEAR EXISTING MARKERS // CLEAR EXISTING MARKERS
if (marker1 !== undefined && marker2 !== undefined && path !== undefined) { if (marker1 !== undefined && marker2 !== undefined && path !== undefined) {
marker1.setMap(null); marker1.setMap(null);
@ -130,11 +110,6 @@
center: {lat: 0, lng: 0}, center: {lat: 0, lng: 0},
zoom: 5 zoom: 5
}); });
google.maps.event.addListener(map, 'center_changed', function() {
checkBounds(map);
});
map.setOptions({ minZoom: 2, maxZoom: 18});
for (var i = 0; i < flightPaths.length; i++) { for (var i = 0; i < flightPaths.length; i++) {
var tempMarker1 = null; var tempMarker1 = null;
var tempMarker2 = null; var tempMarker2 = null;
@ -190,31 +165,6 @@
map.fitBounds(bounds); map.fitBounds(bounds);
} }
function checkBounds(map) {
var latNorth = map.getBounds().getNorthEast().lat();
var latSouth = map.getBounds().getSouthWest().lat();
var newLat;
if(latNorth<85 && latSouth>-85) /* in both side -> it's ok */
return;
else {
if(latNorth>85 && latSouth<-85) /* out both side -> it's ok */
return;
else {
if(latNorth>85)
newLat = map.getCenter().lat() - (latNorth-85); /* too north, centering */
if(latSouth<-85)
newLat = map.getCenter().lat() - (latSouth+85); /* too south, centering */
}
}
//re-centre the map
if(newLat) {
var newCenter= new google.maps.LatLng( newLat ,map.getCenter().lng() );
map.setCenter(newCenter);
}
}
</script> </script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBnt2PJyKZsh-qrsTkbZwSGuUNWPromlLg&callback=initMap" defer></script> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBnt2PJyKZsh-qrsTkbZwSGuUNWPromlLg&callback=initMap" defer></script>
</body> </body>

@ -164,13 +164,13 @@
</AnchorPane> </AnchorPane>
</content> </content>
</Tab> </Tab>
<Tab text="Zones Graph"> <Tab text="Routes to Continent">
<content> <content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0"> <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children> <children>
<BarChart fx:id="zoneGraph" layoutX="224.0" layoutY="18.0" prefHeight="436.0" prefWidth="800.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <BarChart fx:id="contienentGraph" layoutX="224.0" layoutY="18.0" prefHeight="436.0" prefWidth="800.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<xAxis> <xAxis>
<CategoryAxis fx:id="zoneXAxis" side="BOTTOM" /> <CategoryAxis fx:id="contienentXAxis" side="BOTTOM" />
</xAxis> </xAxis>
<yAxis> <yAxis>
<NumberAxis side="LEFT" /> <NumberAxis side="LEFT" />

Loading…
Cancel
Save