Merged into master branch
This commit is contained in:
@@ -60,7 +60,19 @@ public class App extends Application
|
|||||||
currentDataset = new Dataset("test's", Dataset.getExisting);
|
currentDataset = new Dataset("test's", Dataset.getExisting);
|
||||||
}catch (DataException e){
|
}catch (DataException e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
||||||
}/*
|
}/*
|
||||||
|
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
//testout single airport adding
|
||||||
|
try {
|
||||||
|
currentDataset.addAirline("Dota2", "Valve", "D2", "DOT", "Defence of the Ancients", "Steam", "Y");
|
||||||
|
}catch (DataException e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//testing out airport parser
|
//testing out airport parser
|
||||||
try {
|
try {
|
||||||
System.out.println(currentDataset.importAirport("res/Samples/Airports.txt"));
|
System.out.println(currentDataset.importAirport("res/Samples/Airports.txt"));
|
||||||
@@ -79,6 +91,12 @@ public class App extends Application
|
|||||||
} catch (DataException e) {
|
} catch (DataException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
System.out.println(currentDataset.importFlight("res/Samples/NZCH-WSSS.csv"));
|
||||||
|
} catch (DataException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,12 +23,12 @@ public class Dataset {
|
|||||||
ArrayList<FlightPath> flightPaths;
|
ArrayList<FlightPath> flightPaths;
|
||||||
ArrayList<Country> countries;
|
ArrayList<Country> countries;
|
||||||
ArrayList<City> cities;
|
ArrayList<City> cities;
|
||||||
LinkedHashMap airlineDictionary;
|
LinkedHashMap<String, Airline> airlineDictionary;
|
||||||
LinkedHashMap airportDictionary;
|
LinkedHashMap<String, Airport> airportDictionary;
|
||||||
LinkedHashMap routeDictionary;
|
LinkedHashMap<String, Route> routeDictionary;
|
||||||
LinkedHashMap flightPathDictionary;
|
LinkedHashMap<String, FlightPath> flightPathDictionary;
|
||||||
LinkedHashMap countryDictionary;
|
LinkedHashMap<String, Country> countryDictionary;
|
||||||
LinkedHashMap cityDictionary;
|
LinkedHashMap<String, City> cityDictionary;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -44,11 +44,11 @@ public class Dataset {
|
|||||||
this.routes = new ArrayList<Route>();
|
this.routes = new ArrayList<Route>();
|
||||||
this.cities = new ArrayList<City>();
|
this.cities = new ArrayList<City>();
|
||||||
this.countries = new ArrayList<Country>();
|
this.countries = new ArrayList<Country>();
|
||||||
this.airlineDictionary = new LinkedHashMap();
|
this.airlineDictionary = new LinkedHashMap<String, Airline>();
|
||||||
this.airportDictionary = new LinkedHashMap();;
|
this.airportDictionary = new LinkedHashMap<String, Airport>();;
|
||||||
this.routeDictionary = new LinkedHashMap();;
|
this.routeDictionary = new LinkedHashMap<String, Route>();;
|
||||||
this.countryDictionary = new LinkedHashMap();;
|
this.countryDictionary = new LinkedHashMap<String, Country>();;
|
||||||
this.cityDictionary = new LinkedHashMap();;
|
this.cityDictionary = new LinkedHashMap<String, City>();;
|
||||||
if (action == getExisting){
|
if (action == getExisting){
|
||||||
updateDataset();
|
updateDataset();
|
||||||
//after this make connections. ie filling in the country.cities airports.routes etc
|
//after this make connections. ie filling in the country.cities airports.routes etc
|
||||||
@@ -587,6 +587,7 @@ public class Dataset {
|
|||||||
nextID = Integer.parseInt(IDResult.getString("seq")) + 1;//for some reason sqlite3 stores incremental values as a string...
|
nextID = Integer.parseInt(IDResult.getString("seq")) + 1;//for some reason sqlite3 stores incremental values as a string...
|
||||||
}
|
}
|
||||||
stmt.close();
|
stmt.close();
|
||||||
|
|
||||||
stmt = c.createStatement();
|
stmt = c.createStatement();
|
||||||
String insertRouteQuery = "INSERT INTO `" + this.name + "_Routes` (`Airline`, `Source_Airport`, `Destination_Airport`," +
|
String insertRouteQuery = "INSERT INTO `" + this.name + "_Routes` (`Airline`, `Source_Airport`, `Destination_Airport`," +
|
||||||
" `Codeshare`, `Stops`, `Equipment`) VALUES ";
|
" `Codeshare`, `Stops`, `Equipment`) VALUES ";
|
||||||
@@ -639,13 +640,13 @@ public class Dataset {
|
|||||||
* @throws DataException
|
* @throws DataException
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
public String importFlight(String filePath) throws DataException {
|
public String importFlight(String filePath) throws DataException {
|
||||||
FlightPathParser parser = new FlightPathParser(filePath);
|
FlightPathParser parser = new FlightPathParser(filePath);
|
||||||
//remember this still has to append the duplicate message to it.
|
//remember this still has to append the duplicate message to it.
|
||||||
//routes are identified in the diction by routeAirline + routeSourceAirport + routeArrvAirport + routeCodeShare + routeStops + routeEquip;
|
//routes are identified in the diction by routeAirline + routeSourceAirport + routeArrvAirport + routeCodeShare + routeStops + routeEquip;
|
||||||
String message = parser.parse();
|
String message = parser.parse();
|
||||||
ArrayList<FlightPoint> flightsToImport = parser.getResult();
|
ArrayList<FlightPoint> flightPointsToImport = parser.getResult();
|
||||||
//check for dup
|
//check for dup
|
||||||
int numOfDuplicates = 0;
|
int numOfDuplicates = 0;
|
||||||
int nextID = -1;
|
int nextID = -1;
|
||||||
@@ -656,49 +657,69 @@ public class Dataset {
|
|||||||
Class.forName("org.sqlite.JDBC");
|
Class.forName("org.sqlite.JDBC");
|
||||||
c = DriverManager.getConnection("jdbc:sqlite:res/userdb.db");
|
c = DriverManager.getConnection("jdbc:sqlite:res/userdb.db");
|
||||||
stmt = c.createStatement();
|
stmt = c.createStatement();
|
||||||
String queryName = this.name.replace("'", "''").replace("\"", "\"\"");
|
String queryName = this.name.replace("'", "''");
|
||||||
String IDQuery = "SELECT * FROM `sqlite_sequence` WHERE `name` = '"+queryName+"_Routes' LIMIT 1;";
|
String IDQuery = "SELECT * FROM `sqlite_sequence` WHERE `name` = '"+queryName+"_Flight_Points' LIMIT 1;";
|
||||||
ResultSet IDResult = stmt.executeQuery(IDQuery);
|
ResultSet IDResult = stmt.executeQuery(IDQuery);
|
||||||
while(IDResult.next()){
|
while(IDResult.next()){
|
||||||
nextID = Integer.parseInt(IDResult.getString("seq")) + 1;//for some reason sqlite3 stores incremental values as a string...
|
nextID = Integer.parseInt(IDResult.getString("seq")) + 1;//for some reason sqlite3 stores incremental values as a string...
|
||||||
}
|
}
|
||||||
stmt.close();
|
stmt.close();
|
||||||
stmt = c.createStatement();
|
stmt = c.createStatement();
|
||||||
String insertFlightQuery = "INSERT INTO `" + this.name + "_Routes` (`Airline`, `Source_Airport`, `Destination_Airport`," +
|
//ADDED
|
||||||
" `Codeshare`, `Stops`, `Equipment`) VALUES ";
|
String firstPt = flightPointsToImport.get(0).getName();
|
||||||
int numOfRoutes = 0;
|
String lastPt = flightPointsToImport.get(flightPointsToImport.size() - 1).getName();
|
||||||
for (int i = 0; i < flightsToImport.size(); i ++){
|
FlightPath flightPathToAdd = new FlightPath(firstPt, lastPt);
|
||||||
String routeIdentifier = flightsToImport.get(i).getType() + flightsToImport.get(i).getID() +
|
|
||||||
flightsToImport.get(i).getAltitude() + flightsToImport.get(i).getLatitude() +
|
String insertFlightPathQuery = "INSERT INTO `" + this.name + "_Flight_Path` (`Source_Airport`, `Destination_Airport`)" +
|
||||||
flightsToImport.get(i).getLongitude();
|
"VALUES ( \"" + firstPt + "\",\"" + lastPt + "\") ";
|
||||||
//if (routeDictionary.containsKey(routeIdentifier)){
|
stmt.execute(insertFlightPathQuery);
|
||||||
// numOfDuplicates ++;
|
stmt.close();
|
||||||
//}else{
|
stmt = c.createStatement();
|
||||||
//route variables
|
int flightPathId = 0;
|
||||||
String flightType = flightsToImport.get(i).getType().replace("\"", "\"\"");
|
String getLastestIndex = "SELECT * FROM `sqlite_sequence` WHERE `name` = \"" + this.name.replace("\"", "\"\"") +
|
||||||
String flightID = flightsToImport.get(i).getID().replace("\"", "\"\"");
|
"_Flight_Path\" LIMIT 1;";
|
||||||
double flightAltitude = flightsToImport.get(i).getAltitude();
|
ResultSet lastestIdResult = stmt.executeQuery(getLastestIndex);
|
||||||
double flightLatitude = flightsToImport.get(i).getLatitude();
|
while(lastestIdResult.next()){
|
||||||
double flightLongitude = flightsToImport.get(i).getLongitude();
|
flightPathId = Integer.parseInt(lastestIdResult.getString("seq"));//for some reason sqlite3 stores incremental values as a string...
|
||||||
//insert import into database
|
|
||||||
if (numOfRoutes > 0){
|
|
||||||
insertFlightQuery += ",";
|
|
||||||
}
|
}
|
||||||
insertFlightQuery += "(\""+flightType+"\", \"" + flightID + "\", \"" + flightAltitude + "\", " +
|
stmt.close();
|
||||||
"\"" + flightLatitude + "\", " + flightLongitude + "\")";
|
lastestIdResult.close();
|
||||||
flightsToImport.get(i).setID(nextID);
|
stmt = c.createStatement();
|
||||||
|
flightPathToAdd.setID(flightPathId);
|
||||||
|
//ADDED
|
||||||
|
String insertFlightPointQuery = "INSERT INTO `" + this.name + "_Flight_Points` (`Index_ID`, `Name`, `Type`," +
|
||||||
|
" `Altitude`, `Longitude`, `Latitude`) VALUES ";
|
||||||
|
int numOfFlights = 0;
|
||||||
|
for (int i = 0; i < flightPointsToImport.size(); i ++){
|
||||||
|
String flightPointIdentifier = flightPointsToImport.get(i).getType() + flightPointsToImport.get(i).getName() +
|
||||||
|
flightPointsToImport.get(i).getAltitude() + flightPointsToImport.get(i).getLatitude() +
|
||||||
|
flightPointsToImport.get(i).getLongitude();
|
||||||
|
|
||||||
|
String flightType = flightPointsToImport.get(i).getType().replace("\"", "\"\"");
|
||||||
|
String flightName = flightPointsToImport.get(i).getName().replace("\"", "\"\"");
|
||||||
|
double flightAltitude = flightPointsToImport.get(i).getAltitude();
|
||||||
|
double flightLatitude = flightPointsToImport.get(i).getLatitude();
|
||||||
|
double flightLongitude = flightPointsToImport.get(i).getLongitude();
|
||||||
|
//insert import into database
|
||||||
|
if (numOfFlights > 0){
|
||||||
|
insertFlightPointQuery += ",";
|
||||||
|
}
|
||||||
|
insertFlightPointQuery += "(" + flightPathId +", \""+ flightName +"\", \"" + flightType + "\", "+ flightAltitude + ", " +
|
||||||
|
"" + flightLatitude + ", " + flightLongitude + ")";
|
||||||
|
flightPointsToImport.get(i).setID(nextID);
|
||||||
//add data to dataset array.
|
//add data to dataset array.
|
||||||
//this is placed after incase the database messes up
|
//this is placed after incase the database messes up
|
||||||
flights.add(flightsToImport.get(i));
|
flightPathToAdd.addFlightPoint(flightPointsToImport.get(i));
|
||||||
routeDictionary.put(routeIdentifier, flightsToImport.get(i));
|
//routeDictionary.put(routeIdentifier, flightsToImport.get(i));
|
||||||
nextID++;
|
nextID++;
|
||||||
numOfRoutes++;
|
numOfFlights++;
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
if (numOfRoutes > 0){
|
if (numOfFlights > 0){
|
||||||
stmt.execute(insertRouteQuery);
|
stmt.execute(insertFlightPointQuery);
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
}
|
||||||
|
flightPaths.add(flightPathToAdd);
|
||||||
} catch ( Exception e ) {
|
} catch ( Exception e ) {
|
||||||
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
|
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
@@ -707,10 +728,10 @@ public class Dataset {
|
|||||||
createDataLinks();
|
createDataLinks();
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This function updates the connections between airports citys countries etc.
|
* This function updates the connections between airports citys countries etc.
|
||||||
*/
|
*/
|
||||||
@@ -719,6 +740,54 @@ public class Dataset {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addAirline(String name, String alias, String IATA, String ICAO, String callsign, String country, String active) throws DataException{
|
||||||
|
Airline airlineToAdd = new Airline(name, alias, IATA, ICAO, callsign, country, active);
|
||||||
|
addAirline(airlineToAdd);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addAirline(Airline airlineToAdd) throws DataException{
|
||||||
|
if (airlineToAdd.getIATA().length() != 0 && airlineToAdd.getIATA().length() != 2){
|
||||||
|
throw new DataException("IATA is either empty or length of 2 Letters.");
|
||||||
|
}
|
||||||
|
if (airlineToAdd.getICAO().length() != 0 && airlineToAdd.getICAO().length() != 3){
|
||||||
|
throw new DataException("ICAO is either empty or length of 3 Letters.");
|
||||||
|
}
|
||||||
|
if (airlineToAdd.getActive().length() != 1){
|
||||||
|
throw new DataException ("Active must be Y or N.");
|
||||||
|
}
|
||||||
|
for (String key : airlineDictionary.keySet()){
|
||||||
|
airlineDictionary.get(key).hasDuplicate(airlineToAdd);
|
||||||
|
}
|
||||||
|
//checking is done now we add it to the dictionary and the database
|
||||||
|
//query database.
|
||||||
|
Connection c = null;
|
||||||
|
Statement stmt = null;
|
||||||
|
try {
|
||||||
|
Class.forName("org.sqlite.JDBC");
|
||||||
|
c = DriverManager.getConnection("jdbc:sqlite:res/userdb.db");
|
||||||
|
//add the airline
|
||||||
|
stmt = c.createStatement();
|
||||||
|
String insertAirlineQuery = "INSERT INTO `" + this.name + "_Airline` (`Name`, `Alias`, `IATA`, `ICAO`" +
|
||||||
|
", `Callsign`, `Country`, `Active`) VALUES (\""+airlineToAdd.getName()+"\", \"" + airlineToAdd.getAlias() + "\", " +
|
||||||
|
"\"" + airlineToAdd.getIATA() + "\", \"" + airlineToAdd.getICAO() + "\", \"" + airlineToAdd.getCallSign() + "\", " +
|
||||||
|
"\"" + airlineToAdd.getCountry() + "\", \"" + airlineToAdd.getActive() + "\");";
|
||||||
|
stmt.execute(insertAirlineQuery);
|
||||||
|
//get the airline id
|
||||||
|
stmt = c.createStatement();
|
||||||
|
String airlineIDQuery = "SELECT * FROM `sqlite_sequence` WHERE `name` = \""+this.name+"_Airline\" LIMIT 1;";
|
||||||
|
ResultSet airlineIDRes= stmt.executeQuery(airlineIDQuery);
|
||||||
|
int airlineID = 0;
|
||||||
|
while (airlineIDRes.next()){
|
||||||
|
airlineID = Integer.parseInt(airlineIDRes.getString("seq"));
|
||||||
|
}
|
||||||
|
airlineToAdd.setID(airlineID);
|
||||||
|
airlines.add(airlineToAdd);
|
||||||
|
} catch ( Exception e ) {
|
||||||
|
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public ArrayList<Airline> getAirlines() {
|
public ArrayList<Airline> getAirlines() {
|
||||||
return airlines;
|
return airlines;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -228,6 +228,29 @@ public class Airline {
|
|||||||
public void delRoutes(int index){
|
public void delRoutes(int index){
|
||||||
routes.remove(index);
|
routes.remove(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* checks if the airline has a duplicate unique entry to another. Used for validating
|
||||||
|
* @param airline
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public void hasDuplicate(Airline airline) throws DataException{
|
||||||
|
if (this.name == airline.getName()){
|
||||||
|
throw new DataException("This Airline Name already Exists, Please Choose Another.");
|
||||||
|
}
|
||||||
|
if (this.IATA != "" && this.IATA == airline.getIATA()){
|
||||||
|
throw new DataException("This IATA Code already Exists, Please Choose Another.");
|
||||||
|
}
|
||||||
|
if (this.ICAO != "" && this.ICAO == airline.getICAO()){
|
||||||
|
throw new DataException("This ICAO Code already Exists, Please Choose Another.");
|
||||||
|
}
|
||||||
|
if (this.alias != "" && this.alias == airline.getAlias()){
|
||||||
|
throw new DataException("This Alias already Exists, Please Choose Another.");
|
||||||
|
}
|
||||||
|
if (this.callSign != "" && this.callSign == airline.getCallSign()){
|
||||||
|
throw new DataException("This Callsign already Exists, Please Choose Another.");
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* returns the name of the airline when concatenated to a string.
|
* returns the name of the airline when concatenated to a string.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -289,6 +289,21 @@ public class Airport {
|
|||||||
public void delArrivalRoutes(int index){
|
public void delArrivalRoutes(int index){
|
||||||
arrivalRoutes.remove(index);
|
arrivalRoutes.remove(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculates the distance between this airport and another airport in kilometers.
|
||||||
|
* @param airport
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public double calculateDistance(Airport airport){
|
||||||
|
double distance = 0;
|
||||||
|
double dLong = this.longitude - airport.getLatitude();
|
||||||
|
double dLat = this.latitude - airport.getLatitude();
|
||||||
|
double a = Math.pow((Math.sin(dLat/2)), 2) + Math.cos(this.latitude) * Math.cos(airport.getLatitude()) * Math.pow(Math.sin(dLong/2), 2);
|
||||||
|
double c = a * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
|
||||||
|
distance = 6371 * c;
|
||||||
|
return distance;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Information of the airport returned in String format.
|
* Information of the airport returned in String format.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -21,6 +21,13 @@ public class FlightPath {
|
|||||||
this.flightPoints = new ArrayList<FlightPoint>();
|
this.flightPoints = new ArrayList<FlightPoint>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public FlightPath(String departureAirport, String arrivalAirport){
|
||||||
|
this.ID = -1;
|
||||||
|
this.departureAirport = departureAirport;
|
||||||
|
this.arrivalAirport = arrivalAirport;
|
||||||
|
this.flightPoints = new ArrayList<FlightPoint>();
|
||||||
|
}
|
||||||
|
|
||||||
public ArrayList<FlightPoint> getFlightPoints() {
|
public ArrayList<FlightPoint> getFlightPoints() {
|
||||||
return flightPoints;
|
return flightPoints;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,14 +15,14 @@ public class FlightPoint {
|
|||||||
private double latitude;
|
private double latitude;
|
||||||
private double longitude;
|
private double longitude;
|
||||||
|
|
||||||
public FlightPoint(String type, String via, double altitude, double latitude, double longitude){
|
public FlightPoint(String type, String name, double altitude, double latitude, double longitude){
|
||||||
//extra calculations will have to be used to find heading, legdistance and total distance. If necessary
|
//extra calculations will have to be used to find heading, legdistance and total distance. If necessary
|
||||||
//Type 1 file the file the lecturers gave us
|
//Type 1 file the file the lecturers gave us
|
||||||
this.name = "";
|
this.name = name;
|
||||||
this.ID = -1;
|
this.ID = -1;
|
||||||
this.indexID = -1;
|
this.indexID = -1;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.via = via;
|
this.via = "";
|
||||||
this.heading = 0;
|
this.heading = 0;
|
||||||
this.altitude = altitude;
|
this.altitude = altitude;
|
||||||
this.legDistance = 0.0;
|
this.legDistance = 0.0;
|
||||||
|
|||||||
@@ -0,0 +1,100 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import java.lang.*?>
|
||||||
|
<?import javafx.geometry.*?>
|
||||||
|
<?import javafx.scene.control.*?>
|
||||||
|
<?import javafx.scene.layout.*?>
|
||||||
|
<?import javafx.scene.shape.*?>
|
||||||
|
<?import javafx.scene.text.*?>
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
|
<?import javafx.scene.control.Button?>
|
||||||
|
<?import javafx.scene.control.ListView?>
|
||||||
|
<?import javafx.scene.control.ScrollPane?>
|
||||||
|
<?import javafx.scene.control.TextArea?>
|
||||||
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
|
<?import javafx.scene.layout.HBox?>
|
||||||
|
<?import javafx.scene.layout.Pane?>
|
||||||
|
<?import javafx.scene.layout.VBox?>
|
||||||
|
<?import javafx.scene.shape.Rectangle?>
|
||||||
|
<?import javafx.scene.text.Font?>
|
||||||
|
<?import javafx.scene.text.Text?>
|
||||||
|
|
||||||
|
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.FlightSummaryController">
|
||||||
|
<children>
|
||||||
|
<ScrollPane prefHeight="800.0" prefWidth="800.0">
|
||||||
|
<content>
|
||||||
|
<AnchorPane prefHeight="800.0" prefWidth="800.0">
|
||||||
|
<children>
|
||||||
|
<HBox alignment="CENTER" prefHeight="300.0" prefWidth="583.0" AnchorPane.topAnchor="25.0">
|
||||||
|
<children>
|
||||||
|
<AnchorPane prefHeight="300.0" prefWidth="330.0">
|
||||||
|
<children>
|
||||||
|
<Pane layoutY="-6.0" prefHeight="60.0" prefWidth="330.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<children>
|
||||||
|
<Text layoutX="21.0" layoutY="40.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Airlines Summary">
|
||||||
|
<font>
|
||||||
|
<Font size="29.0" />
|
||||||
|
</font>
|
||||||
|
</Text>
|
||||||
|
</children>
|
||||||
|
</Pane>
|
||||||
|
<Pane layoutY="52.0" prefHeight="240.0" prefWidth="480.0" AnchorPane.bottomAnchor="0.0">
|
||||||
|
<children>
|
||||||
|
<Pane layoutX="25.0" layoutY="10.0" prefHeight="220.0" prefWidth="120.0" />
|
||||||
|
<TableView layoutX="10.0" layoutY="10.0" prefHeight="200.0" prefWidth="378.0">
|
||||||
|
<columns>
|
||||||
|
<TableColumn prefWidth="75.0" text="Name" />
|
||||||
|
<TableColumn prefWidth="75.0" text="City" />
|
||||||
|
<TableColumn prefWidth="75.0" text="Country" />
|
||||||
|
<TableColumn prefWidth="75.0" text="Altitude" />
|
||||||
|
<TableColumn prefWidth="75.0" text="IATA/FAA" />
|
||||||
|
</columns>
|
||||||
|
</TableView>
|
||||||
|
</children>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
|
</padding>
|
||||||
|
</Pane>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="300.0" prefWidth="253.0">
|
||||||
|
<children>
|
||||||
|
<Pane layoutY="200.0" prefHeight="100.0" prefWidth="253.0">
|
||||||
|
<children>
|
||||||
|
<Button layoutX="20.0" layoutY="14.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Airports">
|
||||||
|
<font>
|
||||||
|
<Font size="12.0" />
|
||||||
|
</font>
|
||||||
|
</Button>
|
||||||
|
<Button layoutX="94.0" layoutY="14.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Routes">
|
||||||
|
<font>
|
||||||
|
<Font size="12.0" />
|
||||||
|
</font>
|
||||||
|
</Button>
|
||||||
|
<Button layoutX="169.0" layoutY="14.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Flights">
|
||||||
|
<font>
|
||||||
|
<Font size="12.0" />
|
||||||
|
</font>
|
||||||
|
</Button>
|
||||||
|
<Button layoutX="20.0" layoutY="61.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="214.0" text="Airline Raw Data" />
|
||||||
|
</children>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
|
</padding>
|
||||||
|
</Pane>
|
||||||
|
<Pane prefHeight="200.0" prefWidth="253.0">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
|
</padding>
|
||||||
|
</Pane>
|
||||||
|
<Rectangle arcHeight="5.0" arcWidth="5.0" fill="DODGERBLUE" height="200.0" stroke="BLACK" strokeType="INSIDE" width="252.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
</children>
|
||||||
|
</HBox>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
</content>
|
||||||
|
</ScrollPane>
|
||||||
|
</children>
|
||||||
|
</VBox>
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import java.lang.*?>
|
||||||
|
<?import javafx.geometry.*?>
|
||||||
|
<?import javafx.scene.control.*?>
|
||||||
|
<?import javafx.scene.layout.*?>
|
||||||
|
<?import javafx.scene.shape.*?>
|
||||||
|
<?import javafx.scene.text.*?>
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
|
<?import javafx.scene.control.Button?>
|
||||||
|
<?import javafx.scene.control.ListView?>
|
||||||
|
<?import javafx.scene.control.ScrollPane?>
|
||||||
|
<?import javafx.scene.control.TextArea?>
|
||||||
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
|
<?import javafx.scene.layout.HBox?>
|
||||||
|
<?import javafx.scene.layout.Pane?>
|
||||||
|
<?import javafx.scene.layout.VBox?>
|
||||||
|
<?import javafx.scene.shape.Rectangle?>
|
||||||
|
<?import javafx.scene.text.Font?>
|
||||||
|
<?import javafx.scene.text.Text?>
|
||||||
|
|
||||||
|
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.FlightSummaryController">
|
||||||
|
<children>
|
||||||
|
<ScrollPane prefHeight="800.0" prefWidth="800.0">
|
||||||
|
<content>
|
||||||
|
<AnchorPane prefHeight="800.0" prefWidth="800.0">
|
||||||
|
<children>
|
||||||
|
<HBox alignment="CENTER" prefHeight="300.0" prefWidth="583.0" AnchorPane.topAnchor="25.0">
|
||||||
|
<children>
|
||||||
|
<AnchorPane prefHeight="300.0" prefWidth="330.0">
|
||||||
|
<children>
|
||||||
|
<Pane layoutY="-6.0" prefHeight="60.0" prefWidth="330.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<children>
|
||||||
|
<Text layoutX="21.0" layoutY="40.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Airports Summary">
|
||||||
|
<font>
|
||||||
|
<Font size="29.0" />
|
||||||
|
</font>
|
||||||
|
</Text>
|
||||||
|
</children>
|
||||||
|
</Pane>
|
||||||
|
<Pane layoutY="52.0" prefHeight="240.0" prefWidth="480.0" AnchorPane.bottomAnchor="0.0">
|
||||||
|
<children>
|
||||||
|
<Pane layoutX="25.0" layoutY="10.0" prefHeight="220.0" prefWidth="120.0">
|
||||||
|
<children>
|
||||||
|
<TableView layoutX="10.0" layoutY="10.0" prefHeight="200.0" prefWidth="378.0">
|
||||||
|
<columns>
|
||||||
|
<TableColumn prefWidth="75.0" text="Name" />
|
||||||
|
<TableColumn prefWidth="75.0" text="City" />
|
||||||
|
<TableColumn prefWidth="75.0" text="Country" />
|
||||||
|
<TableColumn prefWidth="75.0" text="Altitude" />
|
||||||
|
<TableColumn prefWidth="75.0" text="IATA/FAA" />
|
||||||
|
</columns>
|
||||||
|
</TableView>
|
||||||
|
</children>
|
||||||
|
</Pane>
|
||||||
|
</children>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
|
</padding>
|
||||||
|
</Pane>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="300.0" prefWidth="253.0">
|
||||||
|
<children>
|
||||||
|
<Pane layoutY="200.0" prefHeight="100.0" prefWidth="253.0">
|
||||||
|
<children>
|
||||||
|
<Button layoutX="20.0" layoutY="14.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Routes">
|
||||||
|
<font>
|
||||||
|
<Font size="12.0" />
|
||||||
|
</font>
|
||||||
|
</Button>
|
||||||
|
<Button layoutX="94.0" layoutY="14.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Airlines">
|
||||||
|
<font>
|
||||||
|
<Font size="12.0" />
|
||||||
|
</font>
|
||||||
|
</Button>
|
||||||
|
<Button layoutX="169.0" layoutY="14.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Flights">
|
||||||
|
<font>
|
||||||
|
<Font size="12.0" />
|
||||||
|
</font>
|
||||||
|
</Button>
|
||||||
|
<Button layoutX="20.0" layoutY="61.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="214.0" text="Airport Raw Data" />
|
||||||
|
</children>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
|
</padding>
|
||||||
|
</Pane>
|
||||||
|
<Pane prefHeight="200.0" prefWidth="253.0">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
|
</padding>
|
||||||
|
</Pane>
|
||||||
|
<Rectangle arcHeight="5.0" arcWidth="5.0" fill="DODGERBLUE" height="200.0" stroke="BLACK" strokeType="INSIDE" width="252.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
</children>
|
||||||
|
</HBox>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
</content>
|
||||||
|
</ScrollPane>
|
||||||
|
</children>
|
||||||
|
</VBox>
|
||||||
@@ -4,10 +4,11 @@
|
|||||||
<?import javafx.scene.control.Button?>
|
<?import javafx.scene.control.Button?>
|
||||||
<?import javafx.scene.control.ListView?>
|
<?import javafx.scene.control.ListView?>
|
||||||
<?import javafx.scene.control.ScrollPane?>
|
<?import javafx.scene.control.ScrollPane?>
|
||||||
<?import javafx.scene.control.TextArea?>
|
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
<?import javafx.scene.layout.HBox?>
|
<?import javafx.scene.layout.ColumnConstraints?>
|
||||||
|
<?import javafx.scene.layout.GridPane?>
|
||||||
<?import javafx.scene.layout.Pane?>
|
<?import javafx.scene.layout.Pane?>
|
||||||
|
<?import javafx.scene.layout.RowConstraints?>
|
||||||
<?import javafx.scene.layout.VBox?>
|
<?import javafx.scene.layout.VBox?>
|
||||||
<?import javafx.scene.shape.Rectangle?>
|
<?import javafx.scene.shape.Rectangle?>
|
||||||
<?import javafx.scene.text.Font?>
|
<?import javafx.scene.text.Font?>
|
||||||
@@ -17,77 +18,101 @@
|
|||||||
<children>
|
<children>
|
||||||
<ScrollPane prefHeight="800.0" prefWidth="800.0">
|
<ScrollPane prefHeight="800.0" prefWidth="800.0">
|
||||||
<content>
|
<content>
|
||||||
<AnchorPane prefHeight="800.0" prefWidth="800.0">
|
<AnchorPane prefHeight="600.0" prefWidth="800.0">
|
||||||
<children>
|
<children>
|
||||||
<HBox alignment="CENTER" prefHeight="300.0" prefWidth="583.0" AnchorPane.topAnchor="25.0">
|
<GridPane prefHeight="600.0" prefWidth="800.0">
|
||||||
|
<columnConstraints>
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="493.0" minWidth="10.0" prefWidth="484.0" />
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="393.0" minWidth="10.0" prefWidth="316.0" />
|
||||||
|
</columnConstraints>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints maxHeight="261.0" minHeight="0.0" prefHeight="48.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints maxHeight="711.0" minHeight="10.0" prefHeight="542.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<AnchorPane prefHeight="300.0" prefWidth="330.0">
|
<GridPane GridPane.rowIndex="1">
|
||||||
|
<columnConstraints>
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="237.0" minWidth="10.0" prefWidth="217.0" />
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="268.0" minWidth="10.0" prefWidth="267.0" />
|
||||||
|
</columnConstraints>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints maxHeight="172.0" minHeight="0.0" prefHeight="44.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints maxHeight="461.0" minHeight="10.0" prefHeight="454.0" vgrow="SOMETIMES" />
|
||||||
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<Pane layoutY="-6.0" prefHeight="60.0" prefWidth="330.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
<Pane prefHeight="400.0" prefWidth="150.0" GridPane.rowIndex="1">
|
||||||
|
<children>
|
||||||
|
<ListView layoutX="20.0" layoutY="31.0" prefHeight="400.0" prefWidth="177.0" />
|
||||||
|
</children>
|
||||||
|
</Pane>
|
||||||
|
<Pane prefHeight="60.0" prefWidth="330.0">
|
||||||
<children>
|
<children>
|
||||||
<Text layoutX="21.0" layoutY="40.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Flight Data Summary">
|
<Text layoutX="21.0" layoutY="40.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Flight Data Summary">
|
||||||
<font>
|
<font>
|
||||||
<Font size="29.0" />
|
<Font size="48.0" />
|
||||||
</font>
|
</font>
|
||||||
</Text>
|
</Text>
|
||||||
</children>
|
</children>
|
||||||
</Pane>
|
</Pane>
|
||||||
<Pane layoutY="52.0" prefHeight="240.0" prefWidth="480.0" AnchorPane.bottomAnchor="0.0">
|
<Pane prefHeight="934.0" prefWidth="474.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
|
||||||
<children>
|
<children>
|
||||||
<Rectangle arcHeight="5.0" arcWidth="5.0" fill="#0d93e0" height="220.0" layoutX="170.0" layoutY="10.0" smooth="false" stroke="BLACK" strokeType="INSIDE" strokeWidth="0.0" width="160.0" />
|
<Rectangle arcHeight="5.0" arcWidth="5.0" fill="#0d93e0" height="400.0" layoutX="5.0" layoutY="31.0" smooth="false" stroke="BLACK" strokeType="INSIDE" strokeWidth="0.0" width="257.0" />
|
||||||
<Pane layoutX="25.0" layoutY="10.0" prefHeight="220.0" prefWidth="120.0">
|
|
||||||
<children>
|
|
||||||
<ListView prefHeight="220.0" prefWidth="120.0" />
|
|
||||||
</children>
|
|
||||||
</Pane>
|
|
||||||
</children>
|
</children>
|
||||||
<padding>
|
<padding>
|
||||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
</padding>
|
</padding>
|
||||||
</Pane>
|
</Pane>
|
||||||
</children>
|
</children>
|
||||||
</AnchorPane>
|
</GridPane>
|
||||||
<AnchorPane prefHeight="300.0" prefWidth="253.0">
|
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="1">
|
||||||
|
<columnConstraints>
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||||
|
</columnConstraints>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints maxHeight="347.0" minHeight="10.0" prefHeight="346.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints maxHeight="356.0" minHeight="10.0" prefHeight="152.0" vgrow="SOMETIMES" />
|
||||||
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<Pane layoutY="200.0" prefHeight="100.0" prefWidth="253.0">
|
<Pane prefHeight="160.0" prefWidth="295.0" GridPane.rowIndex="1">
|
||||||
<children>
|
<children>
|
||||||
<Button layoutX="20.0" layoutY="14.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Airports">
|
<Button layoutX="33.0" layoutY="82.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Airports">
|
||||||
<font>
|
<font>
|
||||||
<Font size="12.0" />
|
<Font size="12.0" />
|
||||||
</font>
|
</font>
|
||||||
</Button>
|
</Button>
|
||||||
<Button layoutX="94.0" layoutY="14.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Routes">
|
<Button layoutX="126.0" layoutY="81.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Routes">
|
||||||
<font>
|
<font>
|
||||||
<Font size="12.0" />
|
<Font size="12.0" />
|
||||||
</font>
|
</font>
|
||||||
</Button>
|
</Button>
|
||||||
<Button layoutX="169.0" layoutY="14.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Airlines">
|
<Button layoutX="218.0" layoutY="81.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Airlines">
|
||||||
<font>
|
<font>
|
||||||
<Font size="12.0" />
|
<Font size="12.0" />
|
||||||
</font>
|
</font>
|
||||||
</Button>
|
</Button>
|
||||||
<Button layoutX="20.0" layoutY="61.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="214.0" text="Flight Raw Data" />
|
<Button layoutX="33.0" layoutY="129.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="250.0" text="Flight Raw Data" />
|
||||||
</children>
|
</children>
|
||||||
<padding>
|
<padding>
|
||||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
</padding>
|
</padding>
|
||||||
</Pane>
|
</Pane>
|
||||||
<Pane prefHeight="200.0" prefWidth="253.0">
|
<Pane prefHeight="200.0" prefWidth="200.0">
|
||||||
<children>
|
<children>
|
||||||
<TextArea layoutX="20.0" layoutY="20.0" prefHeight="160.0" prefWidth="213.0">
|
<Pane prefHeight="350.0" prefWidth="316.0">
|
||||||
<padding>
|
<children>
|
||||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
<ListView layoutX="25.0" layoutY="16.0" prefHeight="318.0" prefWidth="266.0" />
|
||||||
</padding>
|
|
||||||
</TextArea>
|
|
||||||
</children>
|
</children>
|
||||||
<padding>
|
<padding>
|
||||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
</padding>
|
</padding>
|
||||||
</Pane>
|
</Pane>
|
||||||
</children>
|
</children>
|
||||||
</AnchorPane>
|
</Pane>
|
||||||
</children>
|
</children>
|
||||||
</HBox>
|
</GridPane>
|
||||||
|
</children>
|
||||||
|
</GridPane>
|
||||||
</children>
|
</children>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
</content>
|
</content>
|
||||||
|
|||||||
@@ -0,0 +1,103 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import java.lang.*?>
|
||||||
|
<?import javafx.geometry.*?>
|
||||||
|
<?import javafx.scene.control.*?>
|
||||||
|
<?import javafx.scene.layout.*?>
|
||||||
|
<?import javafx.scene.shape.*?>
|
||||||
|
<?import javafx.scene.text.*?>
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
|
<?import javafx.scene.control.Button?>
|
||||||
|
<?import javafx.scene.control.ListView?>
|
||||||
|
<?import javafx.scene.control.ScrollPane?>
|
||||||
|
<?import javafx.scene.control.TextArea?>
|
||||||
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
|
<?import javafx.scene.layout.HBox?>
|
||||||
|
<?import javafx.scene.layout.Pane?>
|
||||||
|
<?import javafx.scene.layout.VBox?>
|
||||||
|
<?import javafx.scene.shape.Rectangle?>
|
||||||
|
<?import javafx.scene.text.Font?>
|
||||||
|
<?import javafx.scene.text.Text?>
|
||||||
|
|
||||||
|
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.FlightSummaryController">
|
||||||
|
<children>
|
||||||
|
<ScrollPane prefHeight="800.0" prefWidth="800.0">
|
||||||
|
<content>
|
||||||
|
<AnchorPane prefHeight="800.0" prefWidth="800.0">
|
||||||
|
<children>
|
||||||
|
<HBox alignment="CENTER" prefHeight="300.0" prefWidth="583.0" AnchorPane.topAnchor="25.0">
|
||||||
|
<children>
|
||||||
|
<AnchorPane prefHeight="300.0" prefWidth="330.0">
|
||||||
|
<children>
|
||||||
|
<Pane layoutY="-6.0" prefHeight="60.0" prefWidth="330.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<children>
|
||||||
|
<Text layoutX="21.0" layoutY="40.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Routes Summary">
|
||||||
|
<font>
|
||||||
|
<Font size="29.0" />
|
||||||
|
</font>
|
||||||
|
</Text>
|
||||||
|
</children>
|
||||||
|
</Pane>
|
||||||
|
<Pane layoutY="52.0" prefHeight="240.0" prefWidth="480.0" AnchorPane.bottomAnchor="0.0">
|
||||||
|
<children>
|
||||||
|
<Pane layoutX="25.0" layoutY="10.0" prefHeight="220.0" prefWidth="120.0">
|
||||||
|
<children>
|
||||||
|
<TableView prefHeight="200.0" prefWidth="378.0">
|
||||||
|
<columns>
|
||||||
|
<TableColumn prefWidth="75.0" text="Name" />
|
||||||
|
<TableColumn prefWidth="75.0" text="City" />
|
||||||
|
<TableColumn prefWidth="75.0" text="Country" />
|
||||||
|
<TableColumn prefWidth="75.0" text="Altitude" />
|
||||||
|
<TableColumn prefWidth="75.0" text="IATA/FAA" />
|
||||||
|
</columns>
|
||||||
|
</TableView>
|
||||||
|
</children>
|
||||||
|
</Pane>
|
||||||
|
</children>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
|
</padding>
|
||||||
|
</Pane>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="300.0" prefWidth="253.0">
|
||||||
|
<children>
|
||||||
|
<Pane layoutY="200.0" prefHeight="100.0" prefWidth="253.0">
|
||||||
|
<children>
|
||||||
|
<Button layoutX="20.0" layoutY="14.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Airports">
|
||||||
|
<font>
|
||||||
|
<Font size="12.0" />
|
||||||
|
</font>
|
||||||
|
</Button>
|
||||||
|
<Button layoutX="94.0" layoutY="14.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Airlines">
|
||||||
|
<font>
|
||||||
|
<Font size="12.0" />
|
||||||
|
</font>
|
||||||
|
</Button>
|
||||||
|
<Button layoutX="169.0" layoutY="14.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="65.0" text="Flights">
|
||||||
|
<font>
|
||||||
|
<Font size="12.0" />
|
||||||
|
</font>
|
||||||
|
</Button>
|
||||||
|
<Button layoutX="20.0" layoutY="61.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="214.0" text="Routes Raw Data" />
|
||||||
|
</children>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
|
</padding>
|
||||||
|
</Pane>
|
||||||
|
<Pane prefHeight="200.0" prefWidth="253.0">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
|
</padding>
|
||||||
|
</Pane>
|
||||||
|
<Rectangle arcHeight="5.0" arcWidth="5.0" fill="DODGERBLUE" height="200.0" stroke="BLACK" strokeType="INSIDE" width="252.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
</children>
|
||||||
|
</HBox>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
</content>
|
||||||
|
</ScrollPane>
|
||||||
|
</children>
|
||||||
|
</VBox>
|
||||||
Reference in New Issue
Block a user