Made route RD display things in the table and added functionality to the add button

This commit is contained in:
Sunguin Peng
2016-09-15 13:57:56 +12:00
parent 8192c59bb4
commit ae522e14d3
10 changed files with 168 additions and 75 deletions
@@ -1,8 +1,6 @@
package seng202.group9.Controller;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import seng202.group9.Core.*;
import java.sql.Connection;
@@ -593,15 +591,15 @@ public class Dataset {
" `Codeshare`, `Stops`, `Equipment`) VALUES ";
int numOfRoutes = 0;
for (int i = 0; i < routesToImport.size(); i ++){
String routeIdentifier = routesToImport.get(i).getAirline() + routesToImport.get(i).departsFrom() + routesToImport.get(i).arrivesAt() +
String routeIdentifier = routesToImport.get(i).getAirline() + routesToImport.get(i).getDepartureAirport() + routesToImport.get(i).getArrivalAirport() +
routesToImport.get(i).getCode() + routesToImport.get(i).getStops() + routesToImport.get(i).getEquipment();
if (routeDictionary.containsKey(routeIdentifier)){
numOfDuplicates ++;
}else{
//route variables
String routeAirline = routesToImport.get(i).getAirline().replace("\"", "\"\"");
String routeSource = routesToImport.get(i).departsFrom().replace("\"", "\"\"");
String routeDestination = routesToImport.get(i).arrivesAt().replace("\"", "\"\"");
String routeSource = routesToImport.get(i).getDepartureAirport().replace("\"", "\"\"");
String routeDestination = routesToImport.get(i).getArrivalAirport().replace("\"", "\"\"");
String routeCode = routesToImport.get(i).getCode().replace("\"", "\"\"");
int routeStops = routesToImport.get(i).getStops();
String routeEquipment = routesToImport.get(i).getEquipment().replace("\"", "\"\"");
@@ -934,10 +932,10 @@ public class Dataset {
if (routeToAdd.getAirline().length() != 2 && routeToAdd.getAirline().length() != 3){
throw new DataException("Airline ICAO code must be 2 or 3 letters.");
}
if (routeToAdd.departsFrom().length() != 3 && routeToAdd.departsFrom().length() != 4){
if (routeToAdd.getDepartureAirport().length() != 3 && routeToAdd.getDepartureAirport().length() != 4){
throw new DataException("Airport Source Airport IATA must be 3 letters or 4 letters if ICAO.");
}
if (routeToAdd.arrivesAt().length() != 3 && routeToAdd.arrivesAt().length() != 4){
if (routeToAdd.getArrivalAirport().length() != 3 && routeToAdd.getArrivalAirport().length() != 4){
throw new DataException("Airport Destination Airport IATA must be 3 letters or 4 letters if ICAO.");
}
if (routeToAdd.getCode().length() != 0 && routeToAdd.getCode().length() != 1){
@@ -956,8 +954,8 @@ public class Dataset {
//add the airline
stmt = c.createStatement();
String airline = routeToAdd.getAirline().replace("\"", "\"\"");
String sourceAir = routeToAdd.departsFrom().replace("\"", "\"\"");
String destAir = routeToAdd.arrivesAt().replace("\"", "\"\"");
String sourceAir = routeToAdd.getDepartureAirport().replace("\"", "\"\"");
String destAir = routeToAdd.getArrivalAirport().replace("\"", "\"\"");
String equipment = routeToAdd.getEquipment().replace("\"", "\"\"");
String insertRouteQuery = "INSERT INTO `" + this.name + "_Routes` (`Airline`, `Source_Airport`, `Destination_Airport`," +
" `Codeshare`, `Stops`, `Equipment`) VALUES (\""+airline+"\", \""+sourceAir+"\", \""+destAir+"\", " +
@@ -974,7 +972,7 @@ public class Dataset {
routeToAdd.setID(routeID);
routes.add(routeToAdd);
//routeAirline + routeSourceAirport + routeArrvAirport + routeCodeShare + routeStops + routeEquip
String routeKey = routeToAdd.getAirline() + routeToAdd.departsFrom() + routeToAdd.arrivesAt() + routeToAdd.getCode() + routeToAdd.getStops() + routeToAdd.getEquipment();
String routeKey = routeToAdd.getAirline() + routeToAdd.getDepartureAirport() + routeToAdd.getArrivalAirport() + routeToAdd.getCode() + routeToAdd.getStops() + routeToAdd.getEquipment();
routeDictionary.put(routeKey, routeToAdd);
} catch ( Exception e ) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
+4 -4
View File
@@ -148,14 +148,14 @@ public class Route {
* returns the source airport of this route
* @return
*/
public String departsFrom(){
public String getDepartureAirport(){
return departureAirport;
}
/**
* returns the target airport of this route.
* @return
*/
public String arrivesAt(){
public String getArrivalAirport(){
return arrivalAirport;
}
@@ -164,8 +164,8 @@ public class Route {
*/
public void hasDuplicate(Route route) throws DataException{
//routeAirline + routeSourceAirport + routeArrvAirport + routeCodeShare + routeStops + routeEquip
if (route.getAirline().equals(this.airline) && route.departsFrom().equals(this.departureAirport)
&& route.arrivesAt().equals(this.arrivalAirport) && route.getCode().equals(this.codeShare)
if (route.getAirline().equals(this.airline) && route.getDepartureAirport().equals(this.departureAirport)
&& route.getArrivalAirport().equals(this.arrivalAirport) && route.getCode().equals(this.codeShare)
&& route.getStops() == this.stops && route.getEquipment().equals(this.equipment)){
throw new DataException("This Route already exists.");
}
@@ -141,7 +141,7 @@ public class AirportRDController extends MenuController{
tableViewAirportRD.setItems(FXCollections.observableArrayList(theDataSet.getAirports()));
} catch ( Exception e ) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Airline Data Error");
alert.setTitle("Airport Data Error");
alert.setHeaderText("Error adding a custom airport entry.");
alert.setContentText(e.getMessage());
alert.showAndWait();
@@ -59,7 +59,7 @@ public class MenuController implements Initializable{
try {
RouteRDController summaryController = (RouteRDController) parent.replaceSceneContent("route_raw_data.fxml");
summaryController.setApp(parent);
//summaryController.loadTables();
summaryController.loadTables();
} catch (Exception e) {
e.printStackTrace();
}
@@ -1,14 +1,109 @@
package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import seng202.group9.Controller.App;
import seng202.group9.Controller.Dataset;
import seng202.group9.Core.Airline;
import seng202.group9.Core.Route;
/**
* Created by Sunguin on 2016/09/14.
*/
public class RouteRDController extends MenuController {
@FXML
private TableView<Route> tableViewRouteRD;
@FXML
private TableColumn<Route, String> rAirlineCol;
@FXML
private TableColumn<Route, String> rAirlineIDCol;
@FXML
private TableColumn<Route, String> rSourceCol;
@FXML
private TableColumn<Route, String> rSourceIDCol;
@FXML
private TableColumn<Route, String> rDestCol;
@FXML
private TableColumn<Route, String> rDestIDCol;
@FXML
private TableColumn<Route, String> rCodeshareCol;
@FXML
private TableColumn<Route, String> rStopsCol;
@FXML
private TableColumn<Route, String> rEquipmentCol;
@FXML
private TextField rAirlineBox;
@FXML
private TextField rAirlineIDBox;
@FXML
private TextField rSourceBox;
@FXML
private TextField rSourceIDBox;
@FXML
private TextField rDestBox;
@FXML
private TextField rDestIDBox;
@FXML
private TextField rCodeshareBox;
@FXML
private TextField rStopsBox;
@FXML
private TextField rEquipmentBox;
App parent;
public void setApp(App parent){
this.parent = parent;
}
private Dataset theDataSet = null;
public void loadTables() {
rAirlineCol.setCellValueFactory(new PropertyValueFactory<Route, String>("Airline"));
//rAirlineIDCol.setCellValueFactory(new PropertyValueFactory<Route, String>("AirlineID"));
rSourceCol.setCellValueFactory(new PropertyValueFactory<Route, String>("DepartureAirport"));
//rSourceIDCol.setCellValueFactory(new PropertyValueFactory<Route, String>("SourceID"));
rDestCol.setCellValueFactory(new PropertyValueFactory<Route, String>("ArrivalAirport"));
//rDestIDCol.setCellValueFactory(new PropertyValueFactory<Route, String>("DestID"));
rCodeshareCol.setCellValueFactory(new PropertyValueFactory<Route, String>("Code"));
rStopsCol.setCellValueFactory(new PropertyValueFactory<Route, String>("Stops"));
rEquipmentCol.setCellValueFactory(new PropertyValueFactory<Route, String>("Equipment"));
theDataSet = this.parent.getCurrentDataset();
tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes()));
}
public void addRouteSingle() {
try {
theDataSet.addRoute(
rAirlineBox.getText(),
rSourceBox.getText(),
rDestBox.getText(),
rCodeshareBox.getText(),
rStopsBox.getText(),
rEquipmentBox.getText()
);
rAirlineBox.clear();
rSourceBox.clear();
rDestBox.clear();
rCodeshareBox.clear();
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();
}
}
}