Merge remote-tracking branch 'remotes/origin/master' into Update_Path

# Conflicts:
#	src/main/java/seng202/group9/GUI/FlightRDController.java
#	src/main/resources/flight_raw_data.fxml
main
Liam Beckett 9 years ago
commit e34e0bafee

1
.gitignore vendored

@ -6,3 +6,4 @@ SENG202.iml
.settings/
doc/
res/session.ser
res/userdb.db

@ -1287,6 +1287,7 @@ public class Dataset {
totalDistVal,latitudeVal, longitudeVal);
updateFlightPointInfo(flightPathDictionary.get(Integer.valueOf(id)));
flightPathDictionary.get(Integer.valueOf(id)).addFlightPoint(pointToAdd, index);
flightPointDictionary.put(pointID + 1, pointToAdd);
}
/***

@ -135,7 +135,7 @@ public class EntryParser {
//name
name = name.toUpperCase();
if (!isLetter(name)) {
throw new DataException("ICAO code must contain only letters");
throw new DataException("ICAO code (name field) must contain only letters");
}
//type
type = type.toUpperCase();

@ -12,7 +12,8 @@ public enum SceneCode {
AIRPORT_DIST_CALC("airport_dist_calc.fxml"), AIRLINE_ADD("airline_add_form.fxml"), AIRLINE_FILTER("airline_filter_form.fxml"),
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");
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");
private String filePath;

@ -0,0 +1,75 @@
package seng202.group9.GUI;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import seng202.group9.Controller.Dataset;
import seng202.group9.Controller.Session;
/**
* Created by Sunguin on 2016/10/01.
*/
public class FlightAddController extends Controller {
//Set up text fields for adding data
@FXML
private TextField fNameAdd;
@FXML
private TextField fTypeAdd;
@FXML
private TextField fViaAdd;
@FXML
private TextField fAltitudeAdd;
@FXML
private TextField fLatitudeAdd;
@FXML
private TextField fLongitudeAdd;
@FXML
private TextField fHeadingAdd;
@FXML
private TextField fLegDistAdd;
@FXML
private TextField fTotDistAdd;
@FXML
private Button flightAddButton;
//Set an empty Dataset to be assigned later
private Dataset theDataSet = null;
private Session currentSession = null;
public void load() {
theDataSet = getParent().getCurrentDataset();
currentSession = getParent().getSession();
}
public void addFlight() {
try {
theDataSet.addFlightPointToPath(currentSession.getCurrentFlightPathID(),
fNameAdd.getText(),
fTypeAdd.getText(),
fViaAdd.getText(),
fAltitudeAdd.getText(),
fLatitudeAdd.getText(),
fLongitudeAdd.getText(),
fHeadingAdd.getText(),
fLegDistAdd.getText(),
fTotDistAdd.getText());
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Flight Point Add Successful");
alert.setHeaderText("New Flight Point added!");
alert.setContentText("Your new flight point has been successfully added into the database.");
alert.showAndWait();
Stage stage = (Stage) flightAddButton.getScene().getWindow();
stage.close();
} catch ( Exception e ) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Flight Point Data Error");
alert.setHeaderText("Error adding a custom flight point entry.");
alert.setContentText(e.getMessage());
alert.showAndWait();
}
}
}

@ -53,22 +53,24 @@ public class FlightRDController extends Controller {
ListView<String> flightPathListView;
private ObservableList<String> flightList = FXCollections.observableArrayList();
@FXML
private TextField flightNameBox;
@FXML
private TextField flightTypeBox;
@FXML
private TextField flightAltitudeBox;
@FXML
private TextField flightLatitudeBox;
@FXML
private TextField flightLongitudeBox;
@FXML
private TextField flightHeadingBox;
@FXML
private TextField flightLegDistBox;
@FXML
private TextField flightTotDistBox;
// @FXML
// private TextField flightNameBox;
// @FXML
// private TextField flightTypeBox;
// @FXML
// private TextField flightViaBox;
// @FXML
// private TextField flightAltitudeBox;
// @FXML
// private TextField flightLatitudeBox;
// @FXML
// private TextField flightLongitudeBox;
// @FXML
// private TextField flightHeadingBox;
// @FXML
// private TextField flightLegDistBox;
// @FXML
// private TextField flightTotDistBox;
/**
* Loads the Flight paths into the List View and waits for a mouse clicked event for which it will update the table
@ -142,35 +144,12 @@ public class FlightRDController extends Controller {
/**
* Will take the inputs from the text fields and adds the point to the current flight path.
*/
public void addFlightPoint() {
try {
theDataSet.addFlightPointToPath(currentPathId,
flightNameBox.getText(),
flightTypeBox.getText(),
"",
flightAltitudeBox.getText(),
flightLatitudeBox.getText(),
flightLongitudeBox.getText(),
flightHeadingBox.getText(),
flightLegDistBox.getText(),
flightTotDistBox.getText());
flightNameBox.clear();
flightTypeBox.clear();
flightAltitudeBox.clear();
flightLatitudeBox.clear();
flightLongitudeBox.clear();
flightHeadingBox.clear();
flightLegDistBox.clear();
flightTotDistBox.clear();
updateTable(currentPathIndex);
} catch ( Exception e ) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Flight Point Data Error");
alert.setHeaderText("Error adding a custom flight point entry.");
alert.setContentText(e.getMessage());
}
public void openAdd() {
Session session = getParent().getSession();
session.setCurrentFlightPathtID(currentPathId);
createPopUpStage(SceneCode.FLIGHT_ADD, 600, 400);
//flightTableView.setItems(FXCollections.observableArrayList(theDataSet.getAirports()));
updateTable(currentPathIndex);
}
/**
@ -325,4 +304,8 @@ public class FlightRDController extends Controller {
}
}
public void flightSummaryButton() {
replaceSceneContent(SceneCode.FLIGHT_SUMMARY);
}
}

@ -37,8 +37,6 @@ public class FlightSummaryController extends Controller {
private int currentPathId = 0;
private int currentPathIndex = 0;
@FXML
private Button flightRawData;
private Map map;
@FXML
private WebView mapView;
@ -133,7 +131,6 @@ public class FlightSummaryController extends Controller {
infoList.add("ICAO codes not being present in the Airline");
infoList.add("Database!");
}
flightSummaryListView.setItems(infoList);
} catch(Exception e) {
e.printStackTrace();
@ -173,6 +170,7 @@ public class FlightSummaryController extends Controller {
e.printStackTrace();
}
}
/**
* Used to load the page from the MenuController.
*/
@ -209,6 +207,7 @@ public class FlightSummaryController extends Controller {
});
}
}
/**
* Removes the selected path from the list view of paths and from the database.
*/

@ -1,78 +1,174 @@
package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.fxml.FXML;
import javafx.scene.control.ListView;
import javafx.scene.control.TextArea;
import javafx.scene.layout.Pane;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.scene.text.Text;
import javafx.scene.text.TextFlow;
/**
* Created by spe76 on 30/09/16.
* The GUI controller class for help.fxml.
* Extends from the abstract class {@link Controller}.
* Created by Sunguin.
*/
public class HelpController extends Controller {
@FXML
private ListView listView;
private TreeView treeView;
@FXML
private TextFlow textArea;
public static final ObservableList menu = FXCollections.observableArrayList();
Text text = new Text();
//The TreeItems for the TreeView.
TreeItem main_root = new TreeItem("Main Root");
TreeItem importing = new TreeItem("Importing Data");
TreeItem importing_start = new TreeItem("Importing on Startup");
TreeItem importing_after = new TreeItem("Importing after Startup");
TreeItem viewing = new TreeItem("Viewing Data");
TreeItem summary_viewing = new TreeItem("Viewing Summary Data");
TreeItem raw_viewing = new TreeItem("Viewing Raw Data");
TreeItem manipulating = new TreeItem("Manipulating Data");
TreeItem adding = new TreeItem("Adding Data");
TreeItem filter = new TreeItem("Filtering Data");
TreeItem edit = new TreeItem("Editing Data");
TreeItem delete = new TreeItem("Deleting Data");
TreeItem analysing = new TreeItem("Analysing Data");
TreeItem graphing = new TreeItem("Graphs");
TreeItem distance = new TreeItem("Distance Calculator");
/**
* Loads the TreeView and sets up the TreeView.
*/
public void load() {
menu.addAll("Importing Data", "Viewing Data", "Manipulating Data", "Analysis");
treeView.setRoot(main_root);
treeView.setShowRoot(false);
main_root.getChildren().add(importing);
importing.getChildren().add(importing_start);
importing.getChildren().add(importing_after);
main_root.getChildren().add(viewing);
viewing.getChildren().add(summary_viewing);
viewing.getChildren().add(raw_viewing);
main_root.getChildren().add(manipulating);
manipulating.getChildren().add(adding);
manipulating.getChildren().add(filter);
manipulating.getChildren().add(edit);
manipulating.getChildren().add(delete);
main_root.getChildren().add(analysing);
analysing.getChildren().add(graphing);
analysing.getChildren().add(distance);
text = new Text("Please select an option on the left side menu to display its contents.");
textArea.getChildren().add(text);
listView.setItems(menu);
}
public void sss() {
String menuValue = listView.getSelectionModel().getSelectedItem().toString();
textArea.getChildren().clear();
if (menuValue == "Importing Data") {
text = new Text("You can import data from the first start up of the application and " +
"from the 'File' menu on the top of the screen.\nTo import data, select the type " +
"of data you wish to import. Then select the file (.csv and .txt file) from the " +
"file selector. The data will be loaded into the program and taken to the " +
"corresponding summary page.");
textArea.getChildren().add(text);
} else if (menuValue == "Viewing Data") {
text = new Text("There are two types of views available: Summary view and Raw Data view. " +
"These are accessable from the menu on the top of the screen under the " +
"'View' tab. You first choose which set of data you want to view and then you can select" +
" either 'Summary' or 'Raw Data'.\n" +
"The summary view does not have every column but provides a map of where the " +
"place is.\nThe raw data view allows the user to view the full data table.");
textArea.getChildren().add(text);
} else if (menuValue == "Manipulating Data") {
text = new Text("Data manipulation is all available in the Raw Data views. There are four " +
"ways to manipulate data: 'Add', 'Filter', 'Edit' and 'Delete'.\n" +
"Add: To add a new entry, first go to the raw data view for that data type. Then click " +
"on the add button located on the bottom of the page. Then fill out the entries in the " +
"pop-up box and click add at the bottom of the screen. If there is an error with your entry, " +
"a message will pop up to help you.\n" +
"Filter: To filter all current entries, click on the filter option and a pop " +
"up will appear. Then type in the fields you wish to filter by and press the filter button. " +
"The table should update with the fields specified.\n" +
"Edit: The edit function can be accessed by right clicking on the entry you wish to edit and" +
" clicking the edit option. This will lead to a pop up where you can edit the current entry. " +
" When the edit has been completed, you can press the apply button on the bottom of the pop up. " +
"Again, when the program detects an invalid field, a message will pop up.\n" +
"Delete: The delete function is also accessed by right clicking an entry and pressing the delete field. " +
"This will come up with a pop up to confirm your delete. When you press ok, the entry will be deleted " +
"from the program. The program also allows multiple deletes.");
textArea.getChildren().add(text);
} else if (menuValue == "Analysis") {
text = new Text("There are two ways to do analysis.\nThe first method is to go to the raw data page and " +
"press analyse. This will come up with specific graphs that are related to the set of data." +
"\nThe second method is by accessing the 'Analysis' button on the menu on the top of the page. " +
"You can select which type of analysis you want from here.");
textArea.getChildren().add(text);
}
/**
* Changes the text in the TextFlow depending on which option has been selected in the TreeView.
*/
public void changeView() {
treeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
public void changed(ObservableValue observable, Object oldValue,
Object newValue) {
TreeItem<String> selectedItem = (TreeItem<String>) newValue;
String menuValue = selectedItem.getValue();
if ( menuValue != null ){
textArea.getChildren().clear();
if (menuValue.equals("Importing on Startup")) {
text = new Text("Importing on Startup\n" + "You can import data from the first start up of the application." +
"\nTo import data, select the type of data you wish to import along the bottom of the screen." +
" Then select the file (.csv and .txt file) from the " +
"file selector. The data will be loaded into the program and taken to the " +
"corresponding summary page.");
textArea.getChildren().add(text);
} else if (menuValue.equals("Importing after Startup")) {
text = new Text("Importing after Startup\n" +
"You can import data from the 'File' menu on the top of the screen.\n" +
"To import data, select the type of data you wish to import. " +
"Then select the file (.csv and .txt file) from the file selector. " +
"The data will be loaded into the program and taken to the corresponding summary page.");
textArea.getChildren().add(text);
} else if (menuValue.equals("Viewing Summary Data")) {
text = new Text("Viewing Summary Data\n" +
"The summary data view consists of a reduced version of the data and a map of the currently selected value. " +
"The flight summary data also has a flight path selector to select which flight points you want to view.\n" +
"The summary views are accessible from the menu on the top of the screen under the " +
"'View' tab. You first choose which set of data you want to view and then you can select 'Summary'." +
"\nEach summary page also has buttons that lead to their corresponding raw data view and the other summary views.");
textArea.getChildren().add(text);
} else if (menuValue.equals("Viewing Raw Data")) {
text = new Text("Viewing Raw Data\n" +
"The raw data view allows the user to view the full data table." +
"The user can also add, filter, edit and delete data values as well.\n" +
"These are accessible from the menu on the top of the screen under the " +
"'View' tab. You first choose which set of data you want to view and then you can select 'Raw Data'.\n" +
"The summary view does not have every column but provides a map of where the " +
"The raw data page also has buttons that lead to the analysis of that type of data and to go back to the" +
" corresponding summary page.");
textArea.getChildren().add(text);
} else if (menuValue.equals("Adding Data")) {
text = new Text("Adding Data\n" +
"To add a new entry, first go to the raw data view for that data type. Then click " +
"on the add button located on the bottom of the page. Then fill out the entries in the " +
"pop-up box and click add at the bottom of the screen. " +
"When the program detects an invalid field, a message will pop up and state where the error is.");
textArea.getChildren().add(text);
} else if (menuValue.equals("Filtering Data")) {
text = new Text("Filtering Data\n" +
"To filter all current entries, click on the filter option and a pop " +
"up will appear. Then type in the fields the values you wish to filter by and press the filter button. " +
"The table should update with the fields specified.");
textArea.getChildren().add(text);
} else if (menuValue.equals("Editing Data")) {
text = new Text("Editing Data\n" +
"The edit function can be accessed by right clicking on the entry you wish to edit and" +
" clicking the edit option. This will lead to a pop up where you can edit the current entry." +
" When the edit has been completed, you can press the apply button on the bottom of the pop up. " +
"When the program detects an invalid field, a message will pop up and state where the error is.");
textArea.getChildren().add(text);
} else if (menuValue.equals("Deleting Data")) {
text = new Text("Deleting Data\n" +
"The delete function is accessed by right clicking an entry and pressing the delete option. " +
"This will come up with a pop up to confirm your delete. When you press OK, the entry will be deleted " +
"from the program. The program also allows multiple deletes.");
textArea.getChildren().add(text);
} else if (menuValue.equals("Graphs")) {
text = new Text("Graphs\n" + "The program has the ability to produce graphs according to the type of data.\n" +
"This is done by going to the raw data page for the data you wish to graph. Then press the analyse data button" +
" on the bottom of the screen. This will produce a graph specific for that type of data.");
textArea.getChildren().add(text);
} else if (menuValue.equals("Distance Calculator")) {
text = new Text("Distance Calculator\n" + "You can calculate the distance between two airports.\n" +
"First, go to the 'Analysis' tab on the top of the menu bar. You will be taken to a page that " +
"allows them to select two airports, one from each column and press 'Calculate' to get the distance between" +
" the two airports.");
textArea.getChildren().add(text);
} else {
text = new Text("Please select an option on the left side menu to display its contents.");
textArea.getChildren().add(text);
}
}
}
});
}
}

@ -2,95 +2,70 @@
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<?import javafx.scene.web.WebView?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.45" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.AirlineSummaryController">
<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">
<children>
<TableView fx:id="tableView" prefHeight="200.0" prefWidth="378.0">
<columns>
<TableColumn fx:id="columnName" maxWidth="100.0" prefWidth="50.0" text="Name" />
<TableColumn fx:id="columnAlias" prefWidth="77.0" text="Alias" />
<TableColumn fx:id="columnCountry" prefWidth="86.0" text="Country" />
<TableColumn fx:id="columnIATA" prefWidth="86.0" text="IATA/FAA" />
<TableColumn fx:id="columnActive" prefWidth="46.0" text="Active" />
</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" onAction="#airportSummaryButton" prefHeight="25.0" prefWidth="65.0" text="Airports">
<font>
<Font size="12.0" />
</font>
</Button>
<Button layoutX="94.0" layoutY="14.0" mnemonicParsing="false" onAction="#routeSummaryButton" prefHeight="25.0" prefWidth="65.0" text="Routes">
<font>
<Font size="12.0" />
</font>
</Button>
<Button layoutX="169.0" layoutY="14.0" mnemonicParsing="false" onAction="#flightSummaryButton" prefHeight="25.0" prefWidth="65.0" text="Flights">
<font>
<Font size="12.0" />
</font>
</Button>
<Button layoutX="20.0" layoutY="61.0" mnemonicParsing="false" onAction="#airlineRawDataButton" 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>
<WebView fx:id="mapView" prefHeight="200.0" prefWidth="252.0" />
</children>
</AnchorPane>
</children>
</HBox>
</children>
</AnchorPane>
</content>
</ScrollPane>
</children>
</VBox>
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="568.0" prefWidth="800.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.60" fx:controller="seng202.group9.GUI.AirlineSummaryController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="50.0" minHeight="50.0" prefHeight="50.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="429.0" minHeight="10.0" prefHeight="408.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="118.0" minHeight="10.0" prefHeight="110.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Airlines Summary">
<font>
<Font size="36.0" />
</font>
<GridPane.margin>
<Insets left="15.0" />
</GridPane.margin>
</Text>
<TableView fx:id="tableView" prefHeight="200.0" prefWidth="378.0" GridPane.rowIndex="1" GridPane.rowSpan="2">
<columns>
<TableColumn fx:id="columnName" maxWidth="100.0" prefWidth="50.0" text="Name" />
<TableColumn fx:id="columnAlias" prefWidth="77.0" text="Alias" />
<TableColumn fx:id="columnCountry" prefWidth="110.0" text="Country" />
<TableColumn fx:id="columnIATA" prefWidth="89.0" text="IATA/FAA" />
<TableColumn fx:id="columnActive" prefWidth="58.0" text="Active" />
</columns>
<GridPane.margin>
<Insets bottom="15.0" left="15.0" />
</GridPane.margin>
</TableView>
<WebView fx:id="mapView" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
<GridPane.margin>
<Insets left="15.0" right="15.0" />
</GridPane.margin>
</WebView>
<Button mnemonicParsing="false" onAction="#airportSummaryButton" prefHeight="25.0" prefWidth="100.0" text="Airports" GridPane.columnIndex="1" GridPane.halignment="LEFT" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<Button mnemonicParsing="false" onAction="#routeSummaryButton" prefHeight="25.0" prefWidth="100.0" text="Routes" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<Button mnemonicParsing="false" onAction="#flightSummaryButton" prefHeight="25.0" prefWidth="100.0" text="Flights" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#airlineRawDataButton" prefHeight="25.0" prefWidth="200.0" text="Airline Raw Data" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="BOTTOM">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
</children>
</GridPane>

@ -2,98 +2,70 @@
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<?import javafx.scene.web.WebView?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.45" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.AirportSummaryController">
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="568.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.AirportSummaryController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="50.0" minHeight="50.0" prefHeight="50.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="429.0" minHeight="10.0" prefHeight="408.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="118.0" minHeight="10.0" prefHeight="110.0" vgrow="SOMETIMES" />
</rowConstraints>
<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 fx:id="tableView" layoutX="10.0" layoutY="10.0" prefHeight="200.0" prefWidth="378.0">
<columns>
<TableColumn fx:id="columnName" maxWidth="150.0" prefWidth="75.0" text="Name" />
<TableColumn fx:id="columnCity" prefWidth="75.0" text="City" />
<TableColumn fx:id="columnCountry" prefWidth="75.0" text="Country" />
<TableColumn fx:id="columnAltitude" prefWidth="75.0" text="Altitude" />
<TableColumn fx:id="columnIATA" 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" onAction="#airlineSummaryButton" prefHeight="25.0" prefWidth="65.0" text="Airline">
<font>
<Font size="12.0" />
</font>
</Button>
<Button layoutX="94.0" layoutY="14.0" mnemonicParsing="false" onAction="#routeSummaryButton" prefHeight="25.0" prefWidth="65.0" text="Routes">
<font>
<Font size="12.0" />
</font>
</Button>
<Button layoutX="169.0" layoutY="14.0" mnemonicParsing="false" onAction="#flightSummaryButton" prefHeight="25.0" prefWidth="65.0" text="Flights">
<font>
<Font size="12.0" />
</font>
</Button>
<Button layoutX="20.0" layoutY="61.0" mnemonicParsing="false" onAction="#airportRawDataButton" 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>
<children>
<WebView fx:id="mapView" prefHeight="200.0" prefWidth="254.0" />
</children>
</Pane>
</children>
</AnchorPane>
</children>
</HBox>
</children>
</AnchorPane>
</content>
</ScrollPane>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Airports Summary">
<font>
<Font size="36.0" />
</font>
<GridPane.margin>
<Insets left="15.0" />
</GridPane.margin>
</Text>
<WebView fx:id="mapView" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
<GridPane.margin>
<Insets left="15.0" right="15.0" />
</GridPane.margin>
</WebView>
<Button mnemonicParsing="false" onAction="#airlineSummaryButton" prefHeight="25.0" prefWidth="100.0" text="Airlines" GridPane.columnIndex="1" GridPane.halignment="LEFT" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<Button mnemonicParsing="false" onAction="#routeSummaryButton" prefHeight="25.0" prefWidth="100.0" text="Routes" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<Button mnemonicParsing="false" onAction="#flightSummaryButton" prefHeight="25.0" prefWidth="100.0" text="Flights" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#airportRawDataButton" prefHeight="25.0" prefWidth="200.0" text="Airport Raw Data" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="BOTTOM">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<TableView fx:id="tableView" prefHeight="200.0" prefWidth="378.0" GridPane.rowIndex="1" GridPane.rowSpan="2">
<columns>
<TableColumn fx:id="columnName" maxWidth="150.0" prefWidth="75.0" text="Name" />
<TableColumn fx:id="columnCity" prefWidth="63.0" text="City" />
<TableColumn fx:id="columnCountry" prefWidth="70.0" text="Country" />
<TableColumn fx:id="columnAltitude" prefWidth="70.0" text="Altitude" />
<TableColumn fx:id="columnIATA" prefWidth="85.0" text="IATA/FAA" />
</columns>
<GridPane.margin>
<Insets bottom="15.0" left="15.0" />
</GridPane.margin>
</TableView>
</children>
</VBox>
</GridPane>

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.text.Font?>
<GridPane hgap="10.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" vgap="10.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.FlightAddController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="280.0" minWidth="10.0" prefWidth="125.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="515.0" minWidth="10.0" prefWidth="402.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="30.0" minHeight="0.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="30.0" minHeight="4.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
</padding>
<children>
<Label text="Add Flight Point" GridPane.columnSpan="2" GridPane.halignment="CENTER" GridPane.valignment="TOP">
<font>
<Font size="18.0" />
</font>
</Label>
<Label text="Name" GridPane.halignment="LEFT" GridPane.rowIndex="1">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<Label text="Type" GridPane.halignment="LEFT" GridPane.rowIndex="2">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<Label text="Altitude" GridPane.halignment="LEFT" GridPane.rowIndex="4">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<Label text="Latitude" GridPane.halignment="LEFT" GridPane.rowIndex="5">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<Label text="Longitude" GridPane.halignment="LEFT" GridPane.rowIndex="6">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<Button fx:id="flightAddButton" mnemonicParsing="false" onAction="#addFlight" text="Add Flight" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="10" />
<TextField fx:id="fNameAdd" prefHeight="31.0" prefWidth="432.0" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="1" />
<TextField fx:id="fTypeAdd" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="2" />
<TextField fx:id="fAltitudeAdd" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="4" />
<TextField fx:id="fLatitudeAdd" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="5" />
<TextField fx:id="fLongitudeAdd" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="6" />
<Label text="Via" GridPane.rowIndex="3">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<Label text="Heading" GridPane.rowIndex="7">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<Label text="Leg Distance" GridPane.rowIndex="8">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<Label text="Total Distance" GridPane.rowIndex="9">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<TextField fx:id="fViaAdd" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="3" />
<TextField fx:id="fHeadingAdd" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="7" />
<TextField fx:id="fLegDistAdd" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="8" />
<TextField fx:id="fTotDistAdd" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="9" />
</children>
</GridPane>

@ -3,134 +3,81 @@
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ContextMenu?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<?import javafx.scene.web.WebView?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.FlightSummaryController">
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="568.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.FlightSummaryController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="140.0" minWidth="10.0" prefWidth="140.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="50.0" minHeight="50.0" prefHeight="50.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="429.0" minHeight="10.0" prefHeight="408.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="118.0" minHeight="10.0" prefHeight="110.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<ScrollPane hbarPolicy="NEVER" prefHeight="800.0" prefWidth="800.0" vbarPolicy="NEVER">
<content>
<AnchorPane prefHeight="600.0" prefWidth="800.0">
<children>
<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>
<GridPane GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="237.0" minWidth="10.0" prefWidth="168.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="316.0" minWidth="10.0" prefWidth="316.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>
<Pane prefHeight="461.0" prefWidth="175.0" GridPane.rowIndex="1">
<children>
<ListView fx:id="flightPathListView" layoutX="20.0" layoutY="27.0" prefHeight="404.0" prefWidth="125.0">
<contextMenu>
<ContextMenu>
<items>
<MenuItem mnemonicParsing="false" onAction="#deletePath" text="Delete" />
</items>
</ContextMenu>
</contextMenu></ListView>
<Label layoutX="26.0" layoutY="4.0" text="Flight Path File(s)">
<font>
<Font size="15.0" />
</font>
</Label>
</children>
</Pane>
<Pane prefHeight="60.0" prefWidth="330.0">
<children>
<Text layoutX="21.0" layoutY="40.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Flight Data Summary">
<font>
<Font size="48.0" />
</font>
</Text>
</children>
</Pane>
<Pane prefHeight="934.0" prefWidth="474.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
<children>
<WebView fx:id="mapView" prefHeight="431.0" prefWidth="310.0" />
</children>
<padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
</padding>
</Pane>
</children>
</GridPane>
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="392.0" minHeight="10.0" prefHeight="392.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="356.0" minHeight="10.0" prefHeight="143.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Pane prefHeight="161.0" prefWidth="316.0" GridPane.rowIndex="1">
<children>
<Button layoutX="26.0" layoutY="47.0" mnemonicParsing="false" onAction="#airportSummaryButton" prefHeight="25.0" prefWidth="65.0" text="Airports">
<font>
<Font size="12.0" />
</font>
</Button>
<Button layoutX="126.0" layoutY="47.0" mnemonicParsing="false" onAction="#airlineSummaryButton" prefHeight="25.0" prefWidth="65.0" text="Airlines">
<font>
<Font size="12.0" />
</font>
</Button>
<Button layoutX="227.0" layoutY="47.0" mnemonicParsing="false" onAction="#routeSummaryButton" prefHeight="25.0" prefWidth="65.0" text="Routes">
<font>
<Font size="12.0" />
</font>
</Button>
<Button layoutX="26.0" layoutY="84.0" mnemonicParsing="false" onAction="#handleRawDataButton" prefHeight="25.0" prefWidth="266.0" text="Flights Raw Data" />
</children>
<padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
</padding>
</Pane>
<Pane prefHeight="200.0" prefWidth="200.0">
<children>
<Pane prefHeight="393.0" prefWidth="316.0">
<children>
<ListView fx:id="flightSummaryListView" layoutX="25.0" layoutY="76.0" prefHeight="317.0" prefWidth="266.0" />
</children>
<padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
</padding>
</Pane>
</children>
</Pane>
</children>
</GridPane>
</children>
</GridPane>
</children>
</AnchorPane>
</content>
</ScrollPane>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Flight Data Summary">
<font>
<Font size="36.0" />
</font>
<GridPane.margin>
<Insets left="15.0" />
</GridPane.margin>
</Text>
<Button mnemonicParsing="false" onAction="#airportSummaryButton" prefHeight="25.0" prefWidth="100.0" text="Airports" GridPane.columnIndex="2" GridPane.halignment="LEFT" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<Button mnemonicParsing="false" onAction="#airlineSummaryButton" prefHeight="25.0" prefWidth="100.0" text="Airlines" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="30.0" top="15.0" />
</GridPane.margin>
</Button>
<Button mnemonicParsing="false" onAction="#routeSummaryButton" prefHeight="25.0" prefWidth="100.0" text="Routes" GridPane.columnIndex="2" GridPane.halignment="RIGHT" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#handleRawDataButton" prefHeight="31.0" prefWidth="336.0" text="Flights Raw Data" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="BOTTOM">
<GridPane.margin>
<Insets bottom="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<ListView fx:id="flightPathListView" maxHeight="512.0" maxWidth="125.0" prefHeight="472.0" prefWidth="125.0" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.rowSpan="2" GridPane.valignment="CENTER">
<contextMenu>
<ContextMenu>
<items>
<MenuItem mnemonicParsing="false" onAction="#deletePath" text="Delete" />
</items>
</ContextMenu>
</contextMenu>
<GridPane.margin>
<Insets bottom="15.0" left="15.0" top="20.0" />
</GridPane.margin>
</ListView>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Flight Path File(s)" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="TOP">
<GridPane.margin>
<Insets left="15.0" />
</GridPane.margin>
</Text>
<WebView fx:id="mapView" prefHeight="431.0" prefWidth="310.0" GridPane.columnIndex="1" GridPane.rowIndex="1" GridPane.rowSpan="2">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" />
</GridPane.margin>
</WebView>
<ListView fx:id="flightSummaryListView" prefHeight="317.0" prefWidth="266.0" GridPane.columnIndex="2" GridPane.rowIndex="1">
<GridPane.margin>
<Insets right="15.0" />
</GridPane.margin>
</ListView>
</children>
</VBox>
</GridPane>

@ -6,173 +6,102 @@
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.FlightRDController">
<GridPane alignment="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="568.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.FlightRDController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="142.0" minWidth="10.0" prefWidth="142.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="686.0" minWidth="10.0" prefWidth="658.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="50.0" minHeight="0.0" prefHeight="50.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="450.0" minHeight="10.0" prefHeight="450.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="68.0" minHeight="0.0" prefHeight="68.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<ScrollPane hbarPolicy="NEVER" prefHeight="603.0" prefWidth="751.0" vbarPolicy="NEVER">
<content>
<AnchorPane prefHeight="371.0" prefWidth="600.0">
<children>
<GridPane prefHeight="600.0" prefWidth="800.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="193.0" minHeight="10.0" prefHeight="57.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="521.0" minHeight="10.0" prefHeight="513.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="62.0" minHeight="0.0" prefHeight="28.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<GridPane GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="393.0" minWidth="10.0" prefWidth="162.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="651.0" minWidth="10.0" prefWidth="638.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Pane prefHeight="505.0" prefWidth="162.0">
<children>
<Button layoutX="32.0" layoutY="480.0" mnemonicParsing="false" onAction="#newPath" prefHeight="25.0" prefWidth="99.0" text="New" />
<ListView fx:id="flightPathListView" layoutX="19.0" layoutY="25.0" prefHeight="444.0" prefWidth="125.0">
<contextMenu>
<ContextMenu>
<items>
<MenuItem mnemonicParsing="false" onAction="#deletePath" text="Delete" />
</items>
</ContextMenu>
</contextMenu></ListView>
<Label layoutX="16.0" text="Flight Path File(s)">
<font>
<Font size="15.0" />
</font>
</Label>
</children>
</Pane>
<GridPane prefHeight="467.0" prefWidth="638.0" GridPane.columnIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="617.0" minWidth="10.0" prefWidth="607.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="318.0" minWidth="10.0" prefWidth="43.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="414.0" minHeight="10.0" prefHeight="386.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="137.0" minHeight="1.0" prefHeight="17.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="137.0" minHeight="10.0" prefHeight="62.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="137.0" minHeight="10.0" prefHeight="44.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<ScrollPane prefHeight="52.0" prefViewportHeight="25.0" prefViewportWidth="765.0" prefWidth="601.0" GridPane.rowIndex="2">
<content>
<Pane layoutY="25.0">
<children>
<TextField fx:id="flightLatitudeBox" layoutX="340.0" prefHeight="25.0" prefWidth="100.0" promptText="Latitude">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<TextField fx:id="flightTypeBox" layoutX="190.0" prefHeight="25.0" prefWidth="75.0" promptText="Type">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<TextField fx:id="flightAltitudeBox" layoutX="265.0" prefHeight="25.0" prefWidth="75.0" promptText="Altitude">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<Label prefHeight="25.0" prefWidth="90.0" text="Enter Values:" />
<TextField fx:id="flightHeadingBox" layoutX="540.0" prefHeight="25.0" prefWidth="100.0" promptText="Heading">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<TextField fx:id="flightLongitudeBox" layoutX="440.0" prefHeight="25.0" prefWidth="100.0" promptText="Longitude">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<TextField fx:id="flightNameBox" layoutX="90.0" prefHeight="25.0" prefWidth="100.0" promptText="Name">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<TextField fx:id="flightLegDistBox" layoutX="640.0" prefHeight="25.0" prefWidth="75.0" promptText="Leg Dist">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<TextField fx:id="flightTotDistBox" layoutX="715.0" prefHeight="25.0" prefWidth="75.0" promptText="Tot Dist">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
</children>
<opaqueInsets>
<Insets />
</opaqueInsets>
</Pane>
</content>
</ScrollPane>
<Pane prefHeight="44.0" prefWidth="601.0" GridPane.rowIndex="3">
<children>
<Button layoutX="476.0" layoutY="11.0" mnemonicParsing="false" onAction="#addFlightPoint" prefHeight="25.0" prefWidth="125.0" text="Add" />
<Button layoutY="11.0" mnemonicParsing="false" onAction="#flightAnalyser" prefHeight="25.0" prefWidth="125.0" text="Analyse" />
</children>
</Pane>
<TableView fx:id="flightTableView" prefHeight="377.0" prefWidth="601.0">
<columns>
<TableColumn fx:id="flightIdCol" prefWidth="90.0" text="ID" />
<TableColumn fx:id="flightNameCol" prefWidth="100.0" text="Name" />
<TableColumn fx:id="flightTypeCol" prefWidth="75.0" text="Type" />
<TableColumn fx:id="flightAltitudeCol" prefWidth="75.0" text="Altitude" />
<TableColumn fx:id="flightLatCol" prefWidth="100.0" text="Latitude" />
<TableColumn fx:id="flightLongCol" prefWidth="100.0" text="Longitude" />
<TableColumn fx:id="flightHeadCol" prefWidth="100.0" text="Heading" />
<TableColumn fx:id="flightLegDisCol" prefWidth="75.0" text="Leg Dist" />
<TableColumn fx:id="flightTotDisCol" prefWidth="75.0" text="Tot Dist" />
</columns>
<contextMenu>
<ContextMenu>
<items>
<MenuItem mnemonicParsing="false" onAction="#editPoint" text="Edit" />
<MenuItem mnemonicParsing="false" onAction="#deletePoint" text="Delete" />
<MenuItem mnemonicParsing="false" onAction="#movePointUp" text="Move Up" />
<MenuItem mnemonicParsing="false" onAction="#movePointDown" text="Move Down" />
</items>
</ContextMenu>
</contextMenu>
</TableView>
</children>
</GridPane>
</children>
</GridPane>
<Pane prefHeight="55.0" prefWidth="800.0">
<children>
<Text layoutX="14.0" layoutY="42.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Flight Raw Data">
<font>
<Font size="29.0" />
</font>
</Text>
</children>
</Pane>
</children>
</GridPane>
</children>
</AnchorPane>
</content>
</ScrollPane>
<HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnSpan="2" GridPane.halignment="RIGHT" GridPane.rowIndex="2" GridPane.valignment="BASELINE">
<children>
<Button mnemonicParsing="false" onAction="#newPath" text="New Flight Path">
<HBox.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</HBox.margin>
</Button>
<Button mnemonicParsing="false" onAction="#flightAnalyser" text="Analyse Flight Data">
<HBox.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</HBox.margin>
</Button>
<Button mnemonicParsing="false" nodeOrientation="LEFT_TO_RIGHT" onAction="#openAdd" text="Add New Flight Point">
<HBox.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</HBox.margin>
</Button>
</children>
</HBox>
<Button mnemonicParsing="false" nodeOrientation="LEFT_TO_RIGHT" onAction="#flightSummaryButton" text="Back to Flight Summary" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Flight Raw Data">
<font>
<Font size="36.0" />
</font>
<GridPane.margin>
<Insets left="15.0" />
</GridPane.margin>
</Text>
<ListView fx:id="flightPathListView" prefHeight="415.0" prefWidth="128.0" GridPane.rowIndex="1">
<contextMenu>
<ContextMenu>
<items>
<MenuItem mnemonicParsing="false" onAction="#deletePath" text="Delete" />
</items>
</ContextMenu>
</contextMenu>
<GridPane.margin>
<Insets bottom="15.0" left="15.0" top="20.0" />
</GridPane.margin>
</ListView>
<Label text="Flight Path File(s)" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="TOP">
<font>
<Font size="15.0" />
</font>
<GridPane.margin>
<Insets left="15.0" />
</GridPane.margin>
</Label>
<TableView fx:id="flightTableView" prefHeight="377.0" prefWidth="601.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
<columns>
<TableColumn fx:id="flightIdCol" prefWidth="90.0" text="ID" />
<TableColumn fx:id="flightNameCol" prefWidth="100.0" text="Name" />
<TableColumn fx:id="flightTypeCol" prefWidth="75.0" text="Type" />
<TableColumn fx:id="flightViaCol" prefWidth="100.0" text="Via" />
<TableColumn fx:id="flightAltitudeCol" prefWidth="75.0" text="Altitude" />
<TableColumn fx:id="flightLatCol" prefWidth="100.0" text="Latitude" />
<TableColumn fx:id="flightLongCol" prefWidth="100.0" text="Longitude" />
<TableColumn fx:id="flightHeadCol" prefWidth="100.0" text="Heading" />
<TableColumn fx:id="flightLegDisCol" prefWidth="75.0" text="Leg Dist" />
<TableColumn fx:id="flightTotDisCol" prefWidth="75.0" text="Tot Dist" />
</columns>
<contextMenu>
<ContextMenu>
<items>
<MenuItem mnemonicParsing="false" onAction="#editPoint" text="Edit" />
<MenuItem mnemonicParsing="false" onAction="#deletePoint" text="Delete" />
</items>
</ContextMenu>
</contextMenu>
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" />
</GridPane.margin>
</TableView>
</children>
</VBox>
</GridPane>

@ -1,12 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="568.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.GettingStartedController">
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="568.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.GettingStartedController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="10.0" prefWidth="160.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="160.0" />
@ -40,37 +43,23 @@
<Insets bottom="15.0" />
</GridPane.margin>
</Button>
<Label text="Welcome!" GridPane.columnSpan="5" GridPane.halignment="CENTER">
<Label alignment="TOP_CENTER" text="Welcome!" GridPane.columnSpan="5" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
<font>
<Font size="36.0" />
</font>
<GridPane.margin>
<Insets left="15.0" />
<Insets />
</GridPane.margin>
</Label>
<Label prefHeight="31.0" prefWidth="489.0" text="To get started, select which type of data you" GridPane.columnIndex="1" GridPane.columnSpan="3" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
<font>
<Font size="20.0" />
</font>
</Label>
<Button mnemonicParsing="false" onAction="#goToAirlineSummary" text="Blank Dataset" GridPane.columnIndex="4" GridPane.halignment="CENTER" GridPane.rowIndex="2">
<GridPane.margin>
<Insets bottom="15.0" />
</GridPane.margin>
</Button>
<Label layoutX="185.0" layoutY="427.0" prefHeight="31.0" prefWidth="489.0" text="wish to import or start from a blank dataset." GridPane.columnIndex="1" GridPane.columnSpan="3" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="CENTER">
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="To get started, select which type of data you wish to import or start from a blank dataset." textAlignment="CENTER" wrappingWidth="480.84765625" GridPane.columnIndex="1" GridPane.rowIndex="1">
<font>
<Font size="20.0" />
</font>
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" />
</GridPane.margin>
<padding>
<Insets top="15.0" />
</padding>
</Label>
</Text>
</children>
</GridPane>

@ -1,13 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.media.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.TreeView?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.TextFlow?>
<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.HelpController">
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.HelpController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="286.0" minWidth="10.0" prefWidth="200.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="471.0" minWidth="10.0" prefWidth="400.0" />
@ -23,11 +26,6 @@
<Font size="24.0" />
</font>
</Label>
<ListView fx:id="listView" onMouseClicked="#sss" prefHeight="303.0" prefWidth="208.0" GridPane.rowIndex="1">
<GridPane.margin>
<Insets bottom="10.0" left="10.0" right="10.0" />
</GridPane.margin>
</ListView>
<ScrollPane prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
<GridPane.margin>
<Insets bottom="10.0" right="10.0" />
@ -36,6 +34,11 @@
<TextFlow fx:id="textArea" maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="289.0" prefWidth="364.0" textAlignment="JUSTIFY" />
</content>
</ScrollPane>
<TreeView fx:id="treeView" onMouseClicked="#changeView" prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1">
<GridPane.margin>
<Insets bottom="10.0" left="10.0" right="10.0" />
</GridPane.margin>
</TreeView>
</children>
<padding>
<Insets top="10.0" />

@ -2,98 +2,70 @@
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<?import javafx.scene.web.WebView?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.45" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.RouteSummaryController">
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="568.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng202.group9.GUI.RouteSummaryController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="50.0" minHeight="50.0" prefHeight="50.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="429.0" minHeight="10.0" prefHeight="408.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="118.0" minHeight="10.0" prefHeight="110.0" vgrow="SOMETIMES" />
</rowConstraints>
<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 fx:id="tableView" prefHeight="200.0" prefWidth="378.0">
<columns>
<TableColumn fx:id="columnAirline" prefWidth="89.0" text="Airline" />
<TableColumn fx:id="columnDepart" prefWidth="80.99998474121094" text="Depart" />
<TableColumn fx:id="columnArrive" prefWidth="67.0" text="Arrive" />
<TableColumn fx:id="columnStops" prefWidth="72.0" text="Stops" />
<TableColumn fx:id="columnEquipment" prefWidth="66.0" text="Equipment" />
</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" onAction="#airportSummaryButton" prefHeight="25.0" prefWidth="65.0" text="Airports">
<font>
<Font size="12.0" />
</font>
</Button>
<Button layoutX="94.0" layoutY="14.0" mnemonicParsing="false" onAction="#airlineSummaryButton" prefHeight="25.0" prefWidth="65.0" text="Airlines">
<font>
<Font size="12.0" />
</font>
</Button>
<Button layoutX="169.0" layoutY="14.0" mnemonicParsing="false" onAction="#flightSummaryButton" prefHeight="25.0" prefWidth="65.0" text="Flights">
<font>
<Font size="12.0" />
</font>
</Button>
<Button layoutX="20.0" layoutY="61.0" mnemonicParsing="false" onAction="#routeRawDataButton" 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>
<children>
<WebView fx:id="mapView" prefHeight="200.0" prefWidth="252.0" />
</children>
</Pane>
</children>
</AnchorPane>
</children>
</HBox>
</children>
</AnchorPane>
</content>
</ScrollPane>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Routes Summary">
<font>
<Font size="36.0" />
</font>
<GridPane.margin>
<Insets left="15.0" />
</GridPane.margin>
</Text>
<WebView fx:id="mapView" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
<GridPane.margin>
<Insets left="15.0" right="15.0" />
</GridPane.margin>
</WebView>
<Button mnemonicParsing="false" onAction="#airportSummaryButton" prefHeight="25.0" prefWidth="100.0" text="Airports" GridPane.columnIndex="1" GridPane.halignment="LEFT" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<Button mnemonicParsing="false" onAction="#airlineSummaryButton" prefHeight="25.0" prefWidth="100.0" text="Airlines" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<Button mnemonicParsing="false" onAction="#flightSummaryButton" prefHeight="25.0" prefWidth="100.0" text="Flights" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="2" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#routeRawDataButton" prefHeight="25.0" prefWidth="200.0" text="Routes Raw Data" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="BOTTOM">
<GridPane.margin>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Button>
<TableView fx:id="tableView" prefHeight="200.0" prefWidth="378.0" GridPane.rowIndex="1" GridPane.rowSpan="2">
<columns>
<TableColumn fx:id="columnAirline" prefWidth="77.0" text="Airline" />
<TableColumn fx:id="columnDepart" prefWidth="72.0" text="Depart" />
<TableColumn fx:id="columnArrive" prefWidth="70.0" text="Arrive" />
<TableColumn fx:id="columnStops" prefWidth="60.0" text="Stops" />
<TableColumn fx:id="columnEquipment" prefWidth="85.0" text="Equipment" />
</columns>
<GridPane.margin>
<Insets bottom="15.0" left="15.0" />
</GridPane.margin>
</TableView>
</children>
</VBox>
</GridPane>

Loading…
Cancel
Save