diff --git a/src/main/java/seng202/group9/Controller/Dataset.java b/src/main/java/seng202/group9/Controller/Dataset.java index 8ca4b3a..2225249 100644 --- a/src/main/java/seng202/group9/Controller/Dataset.java +++ b/src/main/java/seng202/group9/Controller/Dataset.java @@ -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() ); diff --git a/src/main/java/seng202/group9/Core/Route.java b/src/main/java/seng202/group9/Core/Route.java index 9a6a7c0..217269a 100644 --- a/src/main/java/seng202/group9/Core/Route.java +++ b/src/main/java/seng202/group9/Core/Route.java @@ -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."); } diff --git a/src/main/java/seng202/group9/GUI/AirlineRDController.java b/src/main/java/seng202/group9/GUI/AirlineRDController.java index 854651b..bbfd2e2 100644 --- a/src/main/java/seng202/group9/GUI/AirlineRDController.java +++ b/src/main/java/seng202/group9/GUI/AirlineRDController.java @@ -61,9 +61,9 @@ public class AirlineRDController extends MenuController { public void loadTables() { airlIDcol.setCellValueFactory(new PropertyValueFactory("ID")); airlNamecol.setCellValueFactory(new PropertyValueFactory("Name")); - airlAliascol.setCellValueFactory(new PropertyValueFactory("Alias")); + airlAliascol.setCellValueFactory(new PropertyValueFactory("ICAO")); //Need to check IATA and ICAO - airlIATAcol.setCellValueFactory(new PropertyValueFactory("ICAO")); + airlIATAcol.setCellValueFactory(new PropertyValueFactory("Alias")); airlICAOcol.setCellValueFactory(new PropertyValueFactory("IATA")); airlCallsigncol.setCellValueFactory(new PropertyValueFactory("CallSign")); airlCountrycol.setCellValueFactory(new PropertyValueFactory("Country")); diff --git a/src/main/java/seng202/group9/GUI/AirportRDController.java b/src/main/java/seng202/group9/GUI/AirportRDController.java index b551c95..0357baf 100644 --- a/src/main/java/seng202/group9/GUI/AirportRDController.java +++ b/src/main/java/seng202/group9/GUI/AirportRDController.java @@ -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(); diff --git a/src/main/java/seng202/group9/GUI/MenuController.java b/src/main/java/seng202/group9/GUI/MenuController.java index ec80209..f337ef7 100644 --- a/src/main/java/seng202/group9/GUI/MenuController.java +++ b/src/main/java/seng202/group9/GUI/MenuController.java @@ -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(); } diff --git a/src/main/java/seng202/group9/GUI/RouteRDController.java b/src/main/java/seng202/group9/GUI/RouteRDController.java index 1475062..7984304 100644 --- a/src/main/java/seng202/group9/GUI/RouteRDController.java +++ b/src/main/java/seng202/group9/GUI/RouteRDController.java @@ -1,14 +1,108 @@ 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.Route; /** * Created by Sunguin on 2016/09/14. */ public class RouteRDController extends MenuController { + + @FXML + private TableView tableViewRouteRD; + @FXML + private TableColumn rAirlineCol; + @FXML + private TableColumn rAirlineIDCol; + @FXML + private TableColumn rSourceCol; + @FXML + private TableColumn rSourceIDCol; + @FXML + private TableColumn rDestCol; + @FXML + private TableColumn rDestIDCol; + @FXML + private TableColumn rCodeshareCol; + @FXML + private TableColumn rStopsCol; + @FXML + private TableColumn 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("Airline")); + //rAirlineIDCol.setCellValueFactory(new PropertyValueFactory("AirlineID")); + rSourceCol.setCellValueFactory(new PropertyValueFactory("DepartureAirport")); + //rSourceIDCol.setCellValueFactory(new PropertyValueFactory("SourceID")); + rDestCol.setCellValueFactory(new PropertyValueFactory("ArrivalAirport")); + //rDestIDCol.setCellValueFactory(new PropertyValueFactory("DestID")); + rCodeshareCol.setCellValueFactory(new PropertyValueFactory("Code")); + rStopsCol.setCellValueFactory(new PropertyValueFactory("Stops")); + rEquipmentCol.setCellValueFactory(new PropertyValueFactory("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(); + } + } } diff --git a/src/main/resources/airline_raw_data.fxml b/src/main/resources/airline_raw_data.fxml index cb2c727..cd8311d 100644 --- a/src/main/resources/airline_raw_data.fxml +++ b/src/main/resources/airline_raw_data.fxml @@ -10,10 +10,9 @@ - - + @@ -23,18 +22,18 @@ - + -