Remade Raw Data GUI and tried oit some things on Session

This commit is contained in:
Sunguin Peng
2016-09-23 00:48:12 +12:00
parent 6b799789e4
commit 5e2ba5af90
20 changed files with 879 additions and 571 deletions
@@ -9,7 +9,9 @@ public enum SceneCode {
AIRPORT_SUMMARY("airport_summary.fxml"), AIRPORT_RAW_DATA("airport_raw_data.fxml"),
ROUTE_SUMMARY("routes_summary.fxml"), ROUTE_RAW_DATA("route_raw_data.fxml"), FLIGHT_SUMMARY("flight_data_summary.fxml"),
FLIGHT_RAW_DATA("flight_raw_data.fxml"), AIRPORT_ANALYSER("airport_analyser.fxml"), ROUTE_ANALYSER("route_analyser.fxml"),
AIRPORT_DIST_CALC("airport_dist_calc.fxml"), AIRLINE_ADD("airline_add_form.fxml");
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");
private String filePath;
@@ -1,5 +1,7 @@
package seng202.group9.Controller;
import javafx.collections.ObservableList;
import java.io.Serializable;
/**
@@ -8,6 +10,7 @@ import java.io.Serializable;
*/
public class Session implements Serializable {
private SceneCode sceneDisplayed;
private ObservableList filteredAirlines;
/**
* Constructor for a new session
@@ -40,4 +43,8 @@ public class Session implements Serializable {
public SceneCode getSceneDisplayed() {
return sceneDisplayed;
}
// public void setFilteredAirlines(ObservableList airlines) {
// this.filteredAirlines = airlines;
// }
}
@@ -9,7 +9,7 @@ import seng202.group9.Controller.Dataset;
/**
* Created by Sunguin on 2016/09/22.
*/
public class AirlineAddController extends AirlineRDController{
public class AirlineAddController extends Controller {
//Setting up text fields for adding data
@FXML
private TextField airlNameAdd;
@@ -26,7 +26,7 @@ public class AirlineAddController extends AirlineRDController{
@FXML
private TextField airlActiveAdd;
Dataset theDataSet = null;
private Dataset theDataSet = null;
/**
* Adds a single airline entry to the database.
@@ -52,15 +52,17 @@ public class AirlineAddController extends AirlineRDController{
airlICAOAdd.clear();
airlCallsignAdd.clear();
airlCountryAdd.clear();
airlActiveAdd.getText();
//setData(theDataSet);
airlActiveAdd.clear();
} catch (Exception e) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Airline Data Error");
alert.setHeaderText("Error adding a custom airline entry.");
System.out.println(e);
alert.setContentText(e.getMessage());
alert.showAndWait();
}
}
public void load() {
theDataSet = getParent().getCurrentDataset();
}
}
@@ -1,6 +1,7 @@
package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
import seng202.group9.Controller.AirlineFilter;
@@ -10,7 +11,7 @@ import seng202.group9.Core.Airline;
/**
* Created by Sunguin on 2016/09/22.
*/
public class AirlineFilterController extends AirlineRDController{
public class AirlineFilterController extends Controller {
//Setting up text fields for filtering data
@FXML
@@ -28,8 +29,7 @@ public class AirlineFilterController extends AirlineRDController{
@FXML
private TextField airlActiveFilter;
Dataset theDataSet = null;
private Dataset theDataSet = null;
/**
* Filters airlines by any field.
@@ -38,9 +38,7 @@ public class AirlineFilterController extends AirlineRDController{
* @see AirlineFilter
*/
public void filterAirlines() {
//System.out.println(getData());
//The filter function also operates like a search function
//theDataSet = getParent().getCurrentDataset();
AirlineFilter filter = new AirlineFilter(theDataSet.getAirlines());
if (airlNameFilter.getText() != null) {
filter.filterName(airlNameFilter.getText());
@@ -63,7 +61,10 @@ public class AirlineFilterController extends AirlineRDController{
if (airlActiveFilter.getText() != null) {
filter.filterActive(airlActiveFilter.getText());
}
//Sets the data according to the criteria specified by the user.
//setDataL(FXCollections.<Airline>observableArrayList(filter.getFilteredData()));
//session.setFilteredAirlines(FXCollections.observableArrayList(filter.getFilteredData()));
}
public void load() {
theDataSet = getParent().getCurrentDataset();
}
}
@@ -79,58 +79,17 @@ public class AirlineRDController extends Controller {
*/
public void openAdd() {
createPopUpStage(SceneCode.AIRLINE_ADD, 600, 370);
/*
try {
FXMLLoader loader = new FXMLLoader();
Parent root = loader.load(getClass().getClassLoader().getResource("airline_add_form.fxml"));
Stage filter = new Stage();
filter.initModality(Modality.APPLICATION_MODAL);
filter.setResizable(false);
filter.setTitle("Add New Airline");
filter.setScene(new Scene(root, 600, 370));
filter.show();
} catch (IOException e) {
e.printStackTrace();
}
tableViewAirlineRD.setItems(FXCollections.observableArrayList(theDataSet.getAirlines()));
}*/
}
/**
* Opens the Airline Filter form.
*/
public void openFilter() {
try {
Parent root = FXMLLoader.load(getClass().getResource("/airline_filter_form.fxml"));
final Stage filter = new Stage();
filter.initModality(Modality.APPLICATION_MODAL);
filter.setResizable(false);
filter.setTitle("Airline Filter");
filter.setScene(new Scene(root, 600, 370));
filter.show();
} catch (IOException e) {
e.printStackTrace();
}
tableViewAirlineRD.setItems(FXCollections.<Airline>observableArrayList(theDataSet.getAirlines()));
createPopUpStage(SceneCode.AIRLINE_FILTER, 600, 370);
//tableViewAirlineRD.setItems(FXCollections.observableArrayList(theDataSet.getAirlines()));
}
// public void setData(Dataset data) {
// this.theDataSet = data;
// }
//
// public Dataset getData() {
// return theDataSet;
// }
//
// public void setDataL(ObservableList re) {
// this.dataL = re;
// }
/**
* Deletes a single selected airline entry from the database.
@@ -0,0 +1,85 @@
package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TextField;
import seng202.group9.Controller.Dataset;
/**
* Created by Sunguin on 2016/09/22.
*/
public class AirportAddController extends Controller {
//Setting up text fields for adding data
@FXML
private TextField airpNameAdd;
@FXML
private TextField airpCityAdd;
@FXML
private TextField airpCountryAdd;
@FXML
private TextField airpIATAFAAAdd;
@FXML
private TextField airpICAOAdd;
@FXML
private TextField airpLatitudeAdd;
@FXML
private TextField airpLongitudeAdd;
@FXML
private TextField airpAltitudeAdd;
@FXML
private TextField airpTimezoneAdd;
@FXML
private TextField airpDSTAdd;
@FXML
private TextField airpTzAdd;
//Set an empty Dataset to be assigned later
private Dataset theDataSet = null;
/**
* Adds a single airport entry in the database.
* Takes in values from the GUI the user has typed in.
* @see Dataset
*/
public void addAirportSingle() {
//Tries to add a new airport and clears the fields to their initial state if successful.
//Otherwise an error message will pop up with what is wrong with the manual data.
try {
theDataSet.addAirport(
airpNameAdd.getText(),
airpCityAdd.getText(),
airpCountryAdd.getText(),
airpIATAFAAAdd.getText(),
airpICAOAdd.getText(),
airpLatitudeAdd.getText(),
airpLongitudeAdd.getText(),
airpAltitudeAdd.getText(),
airpTimezoneAdd.getText(),
airpDSTAdd.getText(),
airpTzAdd.getText());
airpNameAdd.clear();
airpCityAdd.clear();
airpCountryAdd.clear();
airpIATAFAAAdd.clear();
airpICAOAdd.clear();
airpLatitudeAdd.clear();
airpLongitudeAdd.clear();
airpAltitudeAdd.clear();
airpTimezoneAdd.clear();
airpDSTAdd.clear();
airpTzAdd.clear();
} catch ( Exception e ) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Airport Data Error");
alert.setHeaderText("Error adding a custom airport entry.");
alert.setContentText(e.getMessage());
alert.showAndWait();
}
}
public void load() {
theDataSet = getParent().getCurrentDataset();
}
}
@@ -0,0 +1,88 @@
package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
import seng202.group9.Controller.AirportFilter;
import seng202.group9.Controller.Dataset;
import seng202.group9.Core.Airport;
/**
* Created by Sunguin on 2016/09/22.
*/
public class AirportFilterController extends Controller {
//Setting up text fields for filtering data
@FXML
private TextField airpNameFilter;
@FXML
private TextField airpCityFilter;
@FXML
private TextField airpCountryFilter;
@FXML
private TextField airpIATAFAAFilter;
@FXML
private TextField airpICAOFilter;
@FXML
private TextField airpLatitudeFilter;
@FXML
private TextField airpLongitudeFilter;
@FXML
private TextField airpAltitudeFilter;
@FXML
private TextField airpTimezoneFilter;
@FXML
private TextField airpDSTFilter;
@FXML
private TextField airpTzFilter;
//Set an empty Dataset to be assigned later
private Dataset theDataSet = null;
/**
* Filters the airports table by any field.
* These are specified by what the user has typed in the filter boxes.
* Updates the GUI accordingly.
* @see AirportFilter
*/
public void filterAirports() {
//The filter function also operates like a search function
AirportFilter filter = new AirportFilter(theDataSet.getAirports());
if (airpNameFilter.getText() != null) {
filter.filterName(airpNameFilter.getText());
}
if (airpCityFilter.getText() != null) {
filter.filterCity(airpCityFilter.getText());
}
if (airpCountryFilter.getText() != null) {
filter.filterCountry(airpCountryFilter.getText());
}
if (airpIATAFAAFilter.getText() != null) {
filter.filterIATA_FFA(airpIATAFAAFilter.getText());
}
if (airpICAOFilter.getText() != null) {
filter.filterICAO(airpICAOFilter.getText());
}
if (airpLatitudeFilter.getText() != null) {
filter.filterLatitude(airpLatitudeFilter.getText());
}
if (airpLongitudeFilter.getText() != null) {
filter.filterLongitude(airpLongitudeFilter.getText());
}
if (airpAltitudeFilter.getText() != null) {
filter.filterAltitude(airpAltitudeFilter.getText());
}
if (airpTimezoneFilter.getText() != null) {
filter.filterTimezone(airpTimezoneFilter.getText());
}
if (airpDSTFilter.getText() != null) {
filter.filterDST(airpDSTFilter.getText());
}
if (airpTzFilter.getText() != null) {
filter.filterOlson(airpTzFilter.getText());
}
}
public void load() {
theDataSet = getParent().getCurrentDataset();
}
}
@@ -21,77 +21,29 @@ public class AirportRDController extends Controller{
@FXML
private TableView<Airport> tableViewAirportRD;
@FXML
private TableColumn<Airport, String> airpIDcol;
private TableColumn<Airport, String> airpIDCol;
@FXML
private TableColumn<Airport, String> airpNamecol;
private TableColumn<Airport, String> airpNameCol;
@FXML
private TableColumn<Airport, String> airpCitycol;
private TableColumn<Airport, String> airpCityCol;
@FXML
private TableColumn<Airport, String> airpCountrycol;
private TableColumn<Airport, String> airpCountryCol;
@FXML
private TableColumn<Airport, String> airpIATAFFAcol;
private TableColumn<Airport, String> airpIATAFFACol;
@FXML
private TableColumn<Airport, String> airpICAOcol;
private TableColumn<Airport, String> airpICAOCol;
@FXML
private TableColumn<Airport, String> airpLatitudecol;
private TableColumn<Airport, String> airpLatitudeCol;
@FXML
private TableColumn<Airport, String> airpLongitudecol;
private TableColumn<Airport, String> airpLongitudeCol;
@FXML
private TableColumn<Airport, String> airpAltitudecol;
private TableColumn<Airport, String> airpAltitudeCol;
@FXML
private TableColumn<Airport, String> airpTimezonecol;
private TableColumn<Airport, String> airpTimezoneCol;
@FXML
private TableColumn<Airport, String> airpDSTcol;
private TableColumn<Airport, String> airpDSTCol;
@FXML
private TableColumn<Airport, String> airpTzcol;
//Setting up text fields for adding data
@FXML
private TextField airpNameBox;
@FXML
private TextField airpCityBox;
@FXML
private TextField airpCountryBox;
@FXML
private TextField airpIATAFFABox;
@FXML
private TextField airpICAOBox;
@FXML
private TextField airpLatitudeBox;
@FXML
private TextField airpLongitudeBox;
@FXML
private TextField airpAltitudeBox;
@FXML
private TextField airpTimezoneBox;
@FXML
private ComboBox<String> airpDSTCBox;
@FXML
private TextField airpTzBox;
//Setting up text fields for filtering data
@FXML
private TextField airpNameFilter;
@FXML
private TextField airpCityFilter;
@FXML
private TextField airpCountryFilter;
@FXML
private TextField airpIATAFFAFilter;
@FXML
private TextField airpICAOFilter;
@FXML
private TextField airpLatitudeFilter;
@FXML
private TextField airpLongitudeFilter;
@FXML
private TextField airpAltitudeFilter;
@FXML
private TextField airpTimezoneFilter;
@FXML
private TextField airpDSTFilter;
@FXML
private TextField airpTzFilter;
private TableColumn<Airport, String> airpTzCol;
//Set an empty Dataset to be assigned later
private Dataset theDataSet = null;
@@ -102,68 +54,31 @@ public class AirportRDController extends Controller{
*/
public void load() {
//Sets up the table columns to be ready for use for Airport data
airpIDcol.setCellValueFactory(new PropertyValueFactory<Airport, String>("ID"));
airpNamecol.setCellValueFactory(new PropertyValueFactory<Airport, String>("Name"));
airpCitycol.setCellValueFactory(new PropertyValueFactory<Airport, String>("CityName"));
airpCountrycol.setCellValueFactory(new PropertyValueFactory<Airport, String>("CountryName"));
airpIATAFFAcol.setCellValueFactory(new PropertyValueFactory<Airport, String>("IATA_FFA"));
airpICAOcol.setCellValueFactory(new PropertyValueFactory<Airport, String>("ICAO"));
airpLatitudecol.setCellValueFactory(new PropertyValueFactory<Airport, String>("Latitude"));
airpLongitudecol.setCellValueFactory(new PropertyValueFactory<Airport, String>("Longitude"));
airpAltitudecol.setCellValueFactory(new PropertyValueFactory<Airport, String> ("Altitude"));
airpTimezonecol.setCellValueFactory(new PropertyValueFactory<Airport, String>("Timezone"));
airpDSTcol.setCellValueFactory(new PropertyValueFactory<Airport, String>("DST"));
airpTzcol.setCellValueFactory(new PropertyValueFactory<Airport, String>("Tz"));
airpIDCol.setCellValueFactory(new PropertyValueFactory<Airport, String>("ID"));
airpNameCol.setCellValueFactory(new PropertyValueFactory<Airport, String>("Name"));
airpCityCol.setCellValueFactory(new PropertyValueFactory<Airport, String>("CityName"));
airpCountryCol.setCellValueFactory(new PropertyValueFactory<Airport, String>("CountryName"));
airpIATAFFACol.setCellValueFactory(new PropertyValueFactory<Airport, String>("IATA_FFA"));
airpICAOCol.setCellValueFactory(new PropertyValueFactory<Airport, String>("ICAO"));
airpLatitudeCol.setCellValueFactory(new PropertyValueFactory<Airport, String>("Latitude"));
airpLongitudeCol.setCellValueFactory(new PropertyValueFactory<Airport, String>("Longitude"));
airpAltitudeCol.setCellValueFactory(new PropertyValueFactory<Airport, String> ("Altitude"));
airpTimezoneCol.setCellValueFactory(new PropertyValueFactory<Airport, String>("Timezone"));
airpDSTCol.setCellValueFactory(new PropertyValueFactory<Airport, String>("DST"));
airpTzCol.setCellValueFactory(new PropertyValueFactory<Airport, String>("Tz"));
//Assigning the Dataset to the current Dataset's airports and displaying it in a table
theDataSet = getParent().getCurrentDataset();
tableViewAirportRD.setItems(observableArrayList(theDataSet.getAirports()));
airpDSTCBox.setValue("E");//Initializes the value for the drop-down menu for DST for adding a new Airport
airpDSTCBox.getItems().addAll("E", "A", "S", "O", "Z", "N", "U");
}
/**
* Adds a single airport entry in the database.
* Takes in values from the GUI the user has typed in.
* @see Dataset
*/
public void addAirportSingle() {
//Tries to add a new airport and clears the fields to their initial state if successful.
//Otherwise an error message will pop up with what is wrong with the manual data.
try {
theDataSet.addAirport(
airpNameBox.getText(),
airpCityBox.getText(),
airpCountryBox.getText(),
airpIATAFFABox.getText(),
airpICAOBox.getText(),
airpLatitudeBox.getText(),
airpLongitudeBox.getText(),
airpAltitudeBox.getText(),
airpTimezoneBox.getText(),
airpDSTCBox.getSelectionModel().getSelectedItem().toString(),
airpTzBox.getText());
airpCityBox.clear();
airpCountryBox.clear();
airpIATAFFABox.clear();
airpICAOBox.clear();
airpLatitudeBox.clear();
airpLongitudeBox.clear();
airpAltitudeBox.clear();
airpTimezoneBox.clear();
airpDSTCBox.getSelectionModel().clearSelection();
airpDSTCBox.setValue("E");
airpTzBox.clear();
tableViewAirportRD.setItems(FXCollections.observableArrayList(theDataSet.getAirports()));
} catch ( Exception e ) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Airport Data Error");
alert.setHeaderText("Error adding a custom airport entry.");
alert.setContentText(e.getMessage());
alert.showAndWait();
}
public void openAdd() {
createPopUpStage(SceneCode.AIRPORT_ADD, 600, 480);
tableViewAirportRD.setItems(FXCollections.observableArrayList(theDataSet.getAirports()));
}
public void openFilter() {
createPopUpStage(SceneCode.AIRPORT_FILTER, 600, 480);
}
/**
@@ -178,55 +93,14 @@ public class AirportRDController extends Controller{
tableViewAirportRD.setItems(observableArrayList(theDataSet.getAirports()));
}
/**
* Filters the airports table by any field.
* These are specified by what the user has typed in the filter boxes.
* Updates the GUI accordingly.
* @see AirportFilter
*/
public void filterAirports() {
//The filter function also operates like a search function
AirportFilter filter = new AirportFilter(theDataSet.getAirports());
if (airpNameFilter.getText() != null) {
filter.filterName(airpNameFilter.getText());
}
if (airpCityFilter.getText() != null) {
filter.filterCity(airpCityFilter.getText());
}
if (airpCountryFilter.getText() != null) {
filter.filterCountry(airpCountryFilter.getText());
}
if (airpIATAFFAFilter.getText() != null) {
filter.filterIATA_FFA(airpIATAFFAFilter.getText());
}
if (airpICAOFilter.getText() != null) {
filter.filterICAO(airpICAOFilter.getText());
}
if (airpLatitudeFilter.getText() != null) {
filter.filterLatitude(airpLatitudeFilter.getText());
}
if (airpLongitudeFilter.getText() != null) {
filter.filterLongitude(airpLongitudeFilter.getText());
}
if (airpAltitudeFilter.getText() != null) {
filter.filterAltitude(airpAltitudeFilter.getText());
}
if (airpTimezoneFilter.getText() != null) {
filter.filterTimezone(airpTimezoneFilter.getText());
}
if (airpDSTFilter.getText() != null) {
filter.filterDST(airpDSTFilter.getText());
}
if (airpTzFilter.getText() != null) {
filter.filterOlson(airpTzFilter.getText());
}
//Sets the data according to the criteria specified by the user
tableViewAirportRD.setItems(FXCollections.<Airport>observableArrayList(filter.getFilteredData()));
}
/**
* Analyses the current data and creates a graph based on the data.
* @see AirportAnalyser
*/
public void analyse_Button(){ replaceSceneContent(SceneCode.AIRPORT_ANALYSER);}
public void airportSummaryButton() {
replaceSceneContent(SceneCode.AIRPORT_SUMMARY);
}
}
@@ -80,7 +80,7 @@ public abstract class Controller implements Initializable{
}
}
//set contorller and call default calls
Controller controller = loader.getController();
Controller controller = (Controller) loader.getController();
controller.setApp(parent);
controller.load();
controller.loadOnce();
@@ -96,6 +96,7 @@ public abstract class Controller implements Initializable{
popupStage.showAndWait();
return popupStage;
}
/**
* Functions here will only load once and after the load function.
*/
@@ -0,0 +1,65 @@
package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TextField;
import seng202.group9.Controller.Dataset;
/**
* Created by Sunguin on 2016/09/23.
*/
public class RouteAddController extends Controller {
//Setting up text fields for adding data
@FXML
private TextField rAirlineAdd;
@FXML
private TextField rSourceAdd;
@FXML
private TextField rDestAdd;
@FXML
private TextField rCodeshareAdd;
@FXML
private TextField rStopsAdd;
@FXML
private TextField rEquipmentAdd;
private Dataset theDataSet = null;
/**
* Adds a single route entry in the database.
* Takes in values from the GUI the user has typed in.
* @see Dataset
*/
public void addRouteSingle() {
//Tries to add a new route and clears the fields to their initial state if successful.
//Otherwise an error message will pop up with what is wrong with the manual data.
try {
theDataSet.addRoute(
rAirlineAdd.getText(),
rSourceAdd.getText(),
rDestAdd.getText(),
rCodeshareAdd.getText(),
rStopsAdd.getText(),
rEquipmentAdd.getText()
);
rAirlineAdd.clear();
rSourceAdd.clear();
rDestAdd.clear();
rCodeshareAdd.clear();
rStopsAdd.clear();
rEquipmentAdd.clear();
} catch ( Exception e ) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Route Data Error");
alert.setHeaderText("Error adding a custom route entry.");
alert.setContentText(e.getMessage());
alert.showAndWait();
}
}
public void load() {
theDataSet = getParent().getCurrentDataset();
}
}
@@ -0,0 +1,62 @@
package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
import seng202.group9.Controller.Dataset;
import seng202.group9.Controller.RouteFilter;
import seng202.group9.Core.Route;
/**
* Created by Sunguin on 2016/09/23.
*/
public class RouteFilterController extends Controller {
//Setting up text fields for filtering data
@FXML
private TextField rAirlineFilter;
@FXML
private TextField rSourceFilter;
@FXML
private TextField rDestFilter;
@FXML
private TextField rCodeshareFilter;
@FXML
private TextField rStopsFilter;
@FXML
private TextField rEquipmentFilter;
private Dataset theDataSet = null;
/**
* Filters the routes table by any field.
* These are specified by what the user has typed in the filter boxes.
* Updates the GUI accordingly.
* @see RouteFilter
*/
public void filterRoutes(){
//The filter function also operates like a search function
RouteFilter filter = new RouteFilter(theDataSet.getRoutes());
if (rAirlineFilter.getText() != null) {
filter.filterAirline(rAirlineFilter.getText());
}
if (rSourceFilter.getText() != null) {
filter.filterSourceAirport(rSourceFilter.getText());
}
if (rDestFilter.getText() != null) {
filter.filterDestinationAirport(rDestFilter.getText());
}
if (rCodeshareFilter.getText() != null) {
filter.filterCodeshare(rCodeshareFilter.getText());
}
if (rStopsFilter.getText() != null) {
filter.filterDestinationStops(rStopsFilter.getText());
}
if (rEquipmentFilter.getText() != null) {
filter.filterEquipment(rEquipmentFilter.getText());
}
}
public void load() {
theDataSet = getParent().getCurrentDataset();
}
}
@@ -37,34 +37,6 @@ public class RouteRDController extends Controller {
@FXML
private TableColumn<Route, String> rEquipmentCol;
//Setting up text fields for adding data
@FXML
private TextField rAirlineBox;
@FXML
private TextField rSourceBox;
@FXML
private TextField rDestBox;
@FXML
private ComboBox<String> rCodeshareCBox;
@FXML
private TextField rStopsBox;
@FXML
private TextField rEquipmentBox;
//Setting up text fields for filtering data
@FXML
private TextField rAirlineFilter;
@FXML
private TextField rSourceFilter;
@FXML
private TextField rDestFilter;
@FXML
private TextField rCodeshareFilter;
@FXML
private TextField rStopsFilter;
@FXML
private TextField rEquipmentFilter;
//Set an empty Dataset to be assigned later
private Dataset theDataSet = null;
@@ -87,44 +59,15 @@ public class RouteRDController extends Controller {
//Assigning the Dataset to the current Dataset's routes and displaying it in a table
theDataSet = getParent().getCurrentDataset();
tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes()));
//Initializes the value for the drop-down menu for Codeshare for adding a new Route
rCodeshareCBox.setValue("");
rCodeshareCBox.getItems().addAll("Y", "");
}
/**
* Adds a single route entry in the database.
* Takes in values from the GUI the user has typed in.
* @see Dataset
*/
public void addRouteSingle() {
//Tries to add a new route and clears the fields to their initial state if successful.
//Otherwise an error message will pop up with what is wrong with the manual data.
try {
theDataSet.addRoute(
rAirlineBox.getText(),
rSourceBox.getText(),
rDestBox.getText(),
rCodeshareCBox.getSelectionModel().getSelectedItem().toString(),
rStopsBox.getText(),
rEquipmentBox.getText()
);
rAirlineBox.clear();
rSourceBox.clear();
rDestBox.clear();
rCodeshareCBox.getSelectionModel().clearSelection();
rCodeshareCBox.setValue("");
rStopsBox.clear();
rEquipmentBox.clear();
tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes()));
} catch ( Exception e ) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Route Data Error");
alert.setHeaderText("Error adding a custom route entry.");
alert.setContentText(e.getMessage());
alert.showAndWait();
}
public void openAdd() {
createPopUpStage(SceneCode.ROUTE_ADD, 600, 330);
tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes()));
}
public void openFilter() {
createPopUpStage(SceneCode.ROUTE_FILTER, 600, 330);
}
/**
@@ -132,43 +75,13 @@ public class RouteRDController extends Controller {
* Updates the GUI accordingly.
* @see Dataset
*/
public void deleteRoute(){
public void deleteRoute() {
//Gets a route from the table and deletes it before updating the table
Route toDelete = tableViewRouteRD.getSelectionModel().getSelectedItem();
theDataSet.deleteRoute(toDelete);
tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes()));
}
/**
* Filters the routes table by any field.
* These are specified by what the user has typed in the filter boxes.
* Updates the GUI accordingly.
* @see RouteFilter
*/
public void filterRoutes(){
//The filter function also operates like a search function
RouteFilter filter = new RouteFilter(theDataSet.getRoutes());
if (rAirlineFilter.getText() != null) {
filter.filterAirline(rAirlineFilter.getText());
}
if (rSourceFilter.getText() != null) {
filter.filterSourceAirport(rSourceFilter.getText());
}
if (rDestFilter.getText() != null) {
filter.filterDestinationAirport(rDestFilter.getText());
}
if (rCodeshareFilter.getText() != null) {
filter.filterCodeshare(rCodeshareFilter.getText());
}
if (rStopsFilter.getText() != null) {
filter.filterDestinationStops(rStopsFilter.getText());
}
if (rEquipmentFilter.getText() != null) {
filter.filterEquipment(rEquipmentFilter.getText());
}
//Sets the data according to the criteria specified by the user
tableViewRouteRD.setItems(FXCollections.<Route>observableArrayList(filter.getFilteredData()));
}
/**
* Analyses the current data and creates a graph based on the data.
@@ -177,4 +90,8 @@ public class RouteRDController extends Controller {
public void analyse_Button() {
replaceSceneContent(SceneCode.ROUTE_ANALYSER);
}
public void routeSummaryButton() {
replaceSceneContent(SceneCode.ROUTE_SUMMARY);
}
}