Compare commits

...

11 Commits

Binary file not shown.

@ -87,7 +87,7 @@ public class App extends Application
if (datasets.get(i).getName().equals(session.getCurrentDataset())) {
currentDataset = datasets.get(i);
if (session.getFilteredAirlines().size() == 0) {
if (session.getFilteredAirlines().size() == 0 || session.getFilteredAirlines() == null) {
HashMap<Integer, String> airlinesHM = new HashMap<Integer, String>();
ArrayList<Airline> airlines = currentDataset.getAirlines();
for (int index = 0; index < airlines.size(); index++) {
@ -96,7 +96,7 @@ public class App extends Application
session.setFilteredAirlines(airlinesHM);
}
if (session.getFilteredAirports().size() == 0) {
if (session.getFilteredAirports().size() == 0 || session.getFilteredAirports() == null) {
HashMap<Integer, String> airportsHM = new HashMap<Integer, String>();
ArrayList<Airport> airports = currentDataset.getAirports();
for (int index = 0; index < airports.size(); index++) {
@ -105,15 +105,14 @@ public class App extends Application
session.setFilteredAirports(airportsHM);
}
if (session.getFilteredRoutes().size() == 0) {
if (session.getFilteredRoutes().size() == 0 || session.getFilteredRoutes() == null) {
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.setFilteredAirports(routesHM);
session.setFilteredRoutes(routesHM);
}
//session.setFilteredRoutes();
}
}
}
@ -255,6 +254,27 @@ public class App extends Application
public void setCurrentDataset(Dataset dataset){
currentDataset = dataset;
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);
}
}
int length = 10;
if (airlinesFiltered.length < 10){
length = airlinesFiltered.length;
if (countries.size() < 10){
length = countries.size();
}
for (int i = 0 ; i < length; i ++) {
int max = 0;
String maxCountry = null;
@ -130,7 +130,6 @@ public class AirlineGraphController extends Controller{
series.getData().add(new XYChart.Data<String, Integer>(maxCountry, max));
countries.remove(maxCountry);
}
countryGraph.getData().add(series);
}

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

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

@ -7,6 +7,7 @@ import javafx.collections.FXCollections;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
@ -38,6 +39,14 @@ public class AirportRouteMapController extends Controller{
if (!checkDataset()){
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();
//Sets up map.
map = new Map(mapView, new RoutePath(), airportsTable);

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

@ -5,6 +5,7 @@ import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
@ -41,6 +42,14 @@ public class EquipByRouteController extends Controller{
if (!checkDataset()){
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();
//Sets up map.
map = new Map(mapView, new RoutePath(), equipTable);

@ -1,6 +1,7 @@
package seng202.group9.GUI;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.TableView;
import javafx.scene.web.WebView;
import seng202.group9.Controller.Dataset;
@ -24,6 +25,14 @@ public class PopUpAirportMapController extends Controller {
@Override
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();
loadAirports();
}
@ -36,12 +45,4 @@ public class PopUpAirportMapController extends Controller {
}
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,6 +1,7 @@
package seng202.group9.GUI;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.web.WebView;
import seng202.group9.Controller.Dataset;
import seng202.group9.Core.Route;
@ -21,6 +22,14 @@ public class PopUpRouteMapController extends Controller{
@Override
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();
loadRoutes();
}

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

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

@ -28,6 +28,10 @@
center: {lat: 39.144684, lng: -84.510079},
zoom: 5
});
google.maps.event.addListener(map, 'center_changed', function() {
checkBounds(map);
});
map.setOptions({ minZoom: 2, maxZoom: 18});
new google.maps.Marker({
position: {lat: 39.144684, lng: -84.510079},
@ -42,6 +46,12 @@
zoom: 5
});
google.maps.event.addListener(map, 'center_changed', function() {
checkBounds(map);
});
map.setOptions({ minZoom: 2, maxZoom: 18});
new google.maps.Marker({
position: position[0],
map: map,
@ -54,6 +64,11 @@
center: positions[0],
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 ++) {
new google.maps.Marker({
position: positions[i][0],
@ -69,6 +84,11 @@
center: {lat: 39.144684, lng: -84.510079},
zoom: 15
});
google.maps.event.addListener(map, 'center_changed', function() {
checkBounds(map);
});
map.setOptions({ minZoom: 2, maxZoom: 18});
// CLEAR EXISTING MARKERS
if (marker1 !== undefined && marker2 !== undefined && path !== undefined) {
marker1.setMap(null);
@ -110,6 +130,11 @@
center: {lat: 0, lng: 0},
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++) {
var tempMarker1 = null;
var tempMarker2 = null;
@ -165,6 +190,31 @@
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 src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBnt2PJyKZsh-qrsTkbZwSGuUNWPromlLg&callback=initMap" defer></script>
</body>

@ -164,13 +164,13 @@
</AnchorPane>
</content>
</Tab>
<Tab text="Routes to Continent">
<Tab text="Zones Graph">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<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">
<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">
<xAxis>
<CategoryAxis fx:id="contienentXAxis" side="BOTTOM" />
<CategoryAxis fx:id="zoneXAxis" side="BOTTOM" />
</xAxis>
<yAxis>
<NumberAxis side="LEFT" />

Loading…
Cancel
Save