You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.8 KiB
73 lines
2.8 KiB
package seng202.group9.GUI;
|
|
|
|
import javafx.beans.InvalidationListener;
|
|
import javafx.beans.value.ChangeListener;
|
|
import javafx.beans.value.ObservableValue;
|
|
import javafx.collections.FXCollections;
|
|
import javafx.collections.ListChangeListener;
|
|
import javafx.collections.ObservableList;
|
|
import javafx.fxml.FXML;
|
|
import javafx.scene.control.TableColumn;
|
|
import javafx.scene.control.TableView;
|
|
import javafx.scene.control.cell.PropertyValueFactory;
|
|
import javafx.scene.web.WebView;
|
|
import seng202.group9.Controller.Dataset;
|
|
import seng202.group9.Core.*;
|
|
import seng202.group9.Map.Map;
|
|
|
|
import java.util.*;
|
|
|
|
/**
|
|
* Created by fwy13 on 1/10/16.
|
|
*/
|
|
public class AirportRouteMapController extends Controller{
|
|
@FXML
|
|
WebView mapView;
|
|
@FXML
|
|
TableView airportsTable;
|
|
@FXML
|
|
TableColumn<Airport, String> airportName;
|
|
@FXML
|
|
TableColumn<Airport, Integer> routes;
|
|
ObservableList<Airport> airportsToDisplay;
|
|
Dataset currentDataset;
|
|
Map map;
|
|
|
|
@Override
|
|
public void load() {
|
|
if (!checkDataset()){
|
|
return;
|
|
}
|
|
currentDataset = getParent().getCurrentDataset();
|
|
//Sets up map.
|
|
map = new Map(mapView, new RoutePath(), airportsTable);
|
|
airportName.setCellValueFactory(new PropertyValueFactory<Airport, String>("Name"));
|
|
routes.setCellValueFactory(new PropertyValueFactory<Airport, Integer>("TotalRoutes"));
|
|
airportsToDisplay = FXCollections.observableArrayList();
|
|
for (Airport airport: currentDataset.getAirports()){
|
|
if (airport.getTotalRoutes() > 0) {
|
|
airportsToDisplay.add(airport);
|
|
}
|
|
}
|
|
airportsTable.setItems(airportsToDisplay);
|
|
airportsTable.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Airport>() {
|
|
public void changed(ObservableValue<? extends Airport> observable, Airport oldValue, Airport newValue) {
|
|
Airport selectedAirport= (Airport) airportsTable.getSelectionModel().getSelectedItems().get(0);
|
|
for (int i = 0 ; i < currentDataset.getAirports().size(); i ++){
|
|
if (currentDataset.getAirports().get(i).equals(selectedAirport)){
|
|
ArrayList<RoutePath> routePaths = new ArrayList<RoutePath>();
|
|
for (Route route:currentDataset.getAirports().get(i).getArrivalRoutes()){
|
|
routePaths.add(route.getRoutePath());
|
|
}
|
|
for (Route route:currentDataset.getAirports().get(i).getDepartureRoutes()){
|
|
routePaths.add(route.getRoutePath());
|
|
}
|
|
map.displayRoutes(routePaths);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|