FInisehd Pop Up Map
This commit is contained in:
@@ -13,7 +13,8 @@ public enum SceneCode {
|
||||
AIRPORT_ADD("airport_add_form.fxml"), AIRPORT_FILTER("airport_filter_form.fxml"), ROUTE_ADD("route_add_form.fxml"),
|
||||
ROUTE_FILTER("route_filter_form.fxml"), AIRLINE_EDIT("airline_edit_form.fxml"), AIRPORT_EDIT("airport_edit_form.fxml"),
|
||||
ROUTE_EDIT("route_edit_form.fxml"), FLIGHT_EDITOR("flight_editor_form.fxml"), DATASET_CONTROLLER("dataset_editor.fxml"), HELP("help.fxml"),
|
||||
FLIGHT_ADD("flight_add_form.fxml"), ROUTE_BY_AIRPORT("airport_map_routes.fxml"), ROUTE_BY_EQUIP("route_by_equip.fxml");
|
||||
FLIGHT_ADD("flight_add_form.fxml"), ROUTE_BY_AIRPORT("airport_map_routes.fxml"), ROUTE_BY_EQUIP("route_by_equip.fxml"),
|
||||
POP_UP_AIRPORT_MAP("pop_up_airport_map.fxml"), POP_UP_ROUTE_MAP("pop_up_route_map.fxml");
|
||||
|
||||
|
||||
private String filePath;
|
||||
|
||||
@@ -5,6 +5,7 @@ import javafx.collections.ObservableList;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.control.cell.PropertyValueFactory;
|
||||
import javafx.stage.Stage;
|
||||
import seng202.group9.Controller.Dataset;
|
||||
import seng202.group9.Controller.SceneCode;
|
||||
import seng202.group9.Controller.Session;
|
||||
@@ -142,6 +143,6 @@ public class AirportRDController extends Controller{
|
||||
* Opens a map with the data currently being displayed in the table.
|
||||
*/
|
||||
public void openMap() {
|
||||
|
||||
createPopUpStage(SceneCode.POP_UP_AIRPORT_MAP, 600, 400);
|
||||
}
|
||||
}
|
||||
|
||||
+11
-6
@@ -3,6 +3,7 @@ package seng202.group9.GUI;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.TableView;
|
||||
import javafx.scene.web.WebView;
|
||||
import seng202.group9.Controller.Dataset;
|
||||
import seng202.group9.Core.Airport;
|
||||
import seng202.group9.Core.Position;
|
||||
import seng202.group9.Core.Route;
|
||||
@@ -10,26 +11,30 @@ import seng202.group9.Core.RoutePath;
|
||||
import seng202.group9.Map.Map;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* Created by fwy13 on 2/10/16.
|
||||
*/
|
||||
public class PopUpMapController extends Controller {
|
||||
public class PopUpAirportMapController extends Controller {
|
||||
@FXML
|
||||
WebView mapView;
|
||||
Dataset dataset;
|
||||
Map map;
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
map = new Map(mapView, new RoutePath());
|
||||
dataset = getParent().getCurrentDataset();
|
||||
loadAirports();
|
||||
}
|
||||
|
||||
public void loadAirports(ArrayList<Airport> airports){
|
||||
public void loadAirports(){
|
||||
ArrayList<RoutePath> routePaths = new ArrayList<>();
|
||||
for (Airport airport: airports){
|
||||
routePaths.add(airport.getRoutePath());
|
||||
HashMap airports = getParent().getSession().getFilteredAirports();
|
||||
for (int i = 0; i < airports.size(); i ++){
|
||||
routePaths.add(dataset.getAirportDictionary().get(airports.get(i)).getRoutePath());
|
||||
}
|
||||
map.displayAirports(routePaths);
|
||||
map = new Map(mapView, routePaths, Map.loadAirports);
|
||||
}
|
||||
|
||||
public void loadRoutes(ArrayList<Route> routes){
|
||||
@@ -0,0 +1,36 @@
|
||||
package seng202.group9.GUI;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.web.WebView;
|
||||
import seng202.group9.Controller.Dataset;
|
||||
import seng202.group9.Core.Route;
|
||||
import seng202.group9.Core.RoutePath;
|
||||
import seng202.group9.Map.Map;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* Created by fwy13 on 2/10/16.
|
||||
*/
|
||||
public class PopUpRouteMapController extends Controller{
|
||||
@FXML
|
||||
WebView mapView;
|
||||
Dataset dataset;
|
||||
Map map;
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
dataset = getParent().getCurrentDataset();
|
||||
loadRoutes();
|
||||
}
|
||||
|
||||
public void loadRoutes(){
|
||||
ArrayList<RoutePath> routePaths = new ArrayList<>();
|
||||
HashMap routes = getParent().getSession().getFilteredRoutes();
|
||||
for (int i = 0; i < routes.size(); i ++){
|
||||
routePaths.add(dataset.getRouteDictionary().get(routes.get(i)).getRoutePath());
|
||||
}
|
||||
map = new Map(mapView, routePaths, Map.loadRoutes);
|
||||
}
|
||||
}
|
||||
@@ -143,6 +143,6 @@ public class RouteRDController extends Controller {
|
||||
* Opens a map with the data currently being displayed in the table.
|
||||
*/
|
||||
public void openMap(){
|
||||
|
||||
createPopUpStage(SceneCode.POP_UP_ROUTE_MAP, 600, 400);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,8 @@ public class Map {
|
||||
private WebEngine webEngine;
|
||||
private WebView webView;
|
||||
private boolean canLoad = false;
|
||||
public static int loadAirports = 0;
|
||||
public static int loadRoutes = 1;
|
||||
|
||||
public Map(WebView webView, final RoutePath newRoute){
|
||||
this.webView = webView;
|
||||
@@ -36,6 +38,24 @@ public class Map {
|
||||
});
|
||||
}
|
||||
|
||||
public Map(WebView webView, final ArrayList<RoutePath> newRoute, int type){
|
||||
this.webView = webView;
|
||||
webEngine = webView.getEngine();
|
||||
initMap();
|
||||
webEngine.getLoadWorker().stateProperty().addListener(
|
||||
new ChangeListener<Worker.State>() {
|
||||
public void changed(ObservableValue ov, Worker.State oldState, Worker.State newState) {
|
||||
if (newState == Worker.State.SUCCEEDED){
|
||||
if (loadAirports == type) {
|
||||
displayAirports(newRoute);
|
||||
}else if (loadRoutes == type){
|
||||
displayRoutes(newRoute);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public Map(WebView webView, final RoutePath newRoute, TableView table){
|
||||
this.webView = webView;
|
||||
webEngine = webView.getEngine();
|
||||
@@ -87,15 +107,15 @@ public class Map {
|
||||
airportJSONArray += airport.toJSONArray() + ", ";
|
||||
if (counter++ > 49){
|
||||
Alert alert = new Alert(Alert.AlertType.WARNING);
|
||||
alert.setTitle("Too Many Routes");
|
||||
alert.setHeaderText("Too Many Routes to display");
|
||||
alert.setContentText("As there are too many routes to display only the first\n50 will be displayed.");
|
||||
alert.setTitle("Too Many Airports");
|
||||
alert.setHeaderText("Too Many Airports to display");
|
||||
alert.setContentText("As there are too many Airports to display only the first\n50 will be displayed.");
|
||||
alert.showAndWait();
|
||||
break;
|
||||
}
|
||||
}
|
||||
airportJSONArray += "]";
|
||||
webEngine.executeScript("displayRoutes("+airportJSONArray+");");
|
||||
webEngine.executeScript("displayAirports("+airportJSONArray+");");
|
||||
}
|
||||
|
||||
public void displayRoutes(ArrayList<RoutePath> routes){
|
||||
|
||||
@@ -56,12 +56,12 @@
|
||||
});
|
||||
for (var i = 0; i < positions.length; i ++) {
|
||||
new google.maps.Marker({
|
||||
position: positions[i],
|
||||
position: positions[i][0],
|
||||
map: map,
|
||||
title: '\u0048\u0061\u0072\u0061\u006d\u0062\u0065'
|
||||
});
|
||||
}
|
||||
repositionMap(positions);
|
||||
repositionMapToMulti(positions);
|
||||
}
|
||||
|
||||
function displayRoute(flightPath) {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<?import java.lang.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="seng202.group9.GUI.PopUpMapController">
|
||||
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="seng202.group9.GUI.PopUpAirportMapController">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
</columnConstraints>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.web.*?>
|
||||
<?import java.lang.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.PopUpRouteMapController">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<WebView fx:id="mapView" prefHeight="200.0" prefWidth="200.0" />
|
||||
</children>
|
||||
</GridPane>
|
||||
Reference in New Issue
Block a user