diff --git a/res/session.ser b/res/session.ser index 98ddf26..43db026 100644 Binary files a/res/session.ser and b/res/session.ser differ diff --git a/res/userdb.db b/res/userdb.db index ed5ac18..f0d6fde 100644 Binary files a/res/userdb.db and b/res/userdb.db differ diff --git a/src/main/java/seng202/group9/Controller/Dataset.java b/src/main/java/seng202/group9/Controller/Dataset.java index 578b92b..b65d4e1 100644 --- a/src/main/java/seng202/group9/Controller/Dataset.java +++ b/src/main/java/seng202/group9/Controller/Dataset.java @@ -743,7 +743,7 @@ public class Dataset { HashMap airlineByIATA= new HashMap(); //create Airline country link for (Airline airline: airlines){ - airlineByIATA.put(airline.getAlias(), airline); + airlineByIATA.put(airline.getIATA(), airline); //System.out.println(airline.getAlias()); airline.setCountry(countryDictionary.get(airline.getCountryName())); } @@ -834,6 +834,7 @@ public class Dataset { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); System.exit(0); } + createDataLinks(); } public void addAirport(String name, String city, String country, String IATA_FFA, String ICAO, String latitude, String longitude, @@ -893,6 +894,7 @@ public class Dataset { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); System.exit(0); } + createDataLinks(); } public void addCity(City city){ @@ -1018,6 +1020,7 @@ public class Dataset { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); System.exit(0); } + createDataLinks(); } @@ -1136,10 +1139,14 @@ public class Dataset { try { Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:res/userdb.db"); + //System.out.println(airline.getID()); String deleteQuery = "DELETE FROM `"+this.name+"_Airline` WHERE `Airline_ID` = " + airline.getID() + ";"; stmt = c.createStatement(); + //System.out.println("Airline deleted"); stmt.execute(deleteQuery); + //System.out.println("Airline deleted"); stmt.close(); + //System.out.println("Airline deleted"); stmt = c.createStatement(); //check if number of countries that contain airlines > 0 else delete the country String countCountry = "SELECT COUNT(*) FROM `"+this.name+"_Airline` JOIN `"+this.name+"_Country` ON" + @@ -1152,6 +1159,7 @@ public class Dataset { } countCountryRes.close(); stmt.close(); + //check if number of counties that contain airports > 0 else delete the country String countCountryA = "SELECT COUNT(*) FROM `"+this.name+"_Airport` JOIN `"+this.name+"_Country` ON" + " `"+this.name+"_Country`.`Country_Name` = `"+this.name+"_Airport`.`Country`" + @@ -1172,7 +1180,7 @@ public class Dataset { c.close(); } catch ( Exception e ) { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); - System.exit(0); + //System.exit(0); } airlines.remove(airline); } diff --git a/src/main/java/seng202/group9/Core/Route.java b/src/main/java/seng202/group9/Core/Route.java index 07b975d..c04dd55 100644 --- a/src/main/java/seng202/group9/Core/Route.java +++ b/src/main/java/seng202/group9/Core/Route.java @@ -122,7 +122,7 @@ public class Route { } //JavaDoc needed public int getAirlineID() throws DataException { - if (this.airline != null) { + if (this.getAirline() != null) { return this.getAirline().getID(); }else { return 0; @@ -240,7 +240,7 @@ public class Route { */ public void hasDuplicate(Route route) throws DataException{ //routeAirline + routeSourceAirport + routeArrvAirport + routeCodeShare + routeStops + routeEquip - if (route.getAirline().equals(this.airline) && route.getDepartureAirport().equals(this.departureAirport) + if (route.getAirlineName().equals(this.airlineName) && 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 9dc01a7..72425c4 100644 --- a/src/main/java/seng202/group9/GUI/AirlineRDController.java +++ b/src/main/java/seng202/group9/GUI/AirlineRDController.java @@ -1,25 +1,19 @@ package seng202.group9.GUI; import javafx.collections.FXCollections; -import javafx.collections.ObservableList; import javafx.fxml.FXML; -import javafx.fxml.Initializable; import javafx.scene.control.*; import javafx.scene.control.cell.PropertyValueFactory; -import seng202.group9.Controller.App; import seng202.group9.Controller.Dataset; import seng202.group9.Core.Airline; -import java.net.URL; -import java.util.ResourceBundle; - /** * Created by Sunguin on 2016/09/13. */ public class AirlineRDController extends Controller { @FXML - private TableView tableView; + private TableView tableViewAirlineRD; @FXML private TableColumn airlIDcol; @FXML @@ -73,7 +67,7 @@ public class AirlineRDController extends Controller { airlCallsignBox.clear(); airlCountryBox.clear(); airlActiveCBox.getSelectionModel().clearSelection(); - tableView.setItems(FXCollections.observableArrayList(theDataSet.getAirlines())); + tableViewAirlineRD.setItems(FXCollections.observableArrayList(theDataSet.getAirlines())); } catch ( Exception e ) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Airline Data Error"); @@ -95,9 +89,15 @@ public class AirlineRDController extends Controller { airlActivecol.setCellValueFactory(new PropertyValueFactory("Active")); theDataSet = getParent().getCurrentDataset(); - tableView.setItems(FXCollections.observableArrayList(theDataSet.getAirlines())); - //ObservableList activeOptions= FXCollections.observableArrayList("Y", "N"); + tableViewAirlineRD.setItems(FXCollections.observableArrayList(theDataSet.getAirlines())); + + airlActiveCBox.setValue("Y"); airlActiveCBox.getItems().addAll("Y", "N"); } + public void deleteAirline() { + Airline toDelete = tableViewAirlineRD.getSelectionModel().getSelectedItem(); + theDataSet.deleteAirline(toDelete); + tableViewAirlineRD.setItems(FXCollections.observableArrayList(theDataSet.getAirlines())); + } } diff --git a/src/main/java/seng202/group9/GUI/AirportRDController.java b/src/main/java/seng202/group9/GUI/AirportRDController.java index 208550c..10b873d 100644 --- a/src/main/java/seng202/group9/GUI/AirportRDController.java +++ b/src/main/java/seng202/group9/GUI/AirportRDController.java @@ -90,26 +90,10 @@ public class AirportRDController extends Controller{ airpDSTcol.setCellValueFactory(new PropertyValueFactory("DST")); airpTzcol.setCellValueFactory(new PropertyValueFactory("Tz")); -// airpTimezonecol.setCellFactory(new Callback, TableCell>() { -// -// @Override -// public TableCell call(TableColumn param) { -// TableCell timeZoneCell = new TableCell() { -// @Override -// protected void updateItem(City timezone, boolean empty) { -// if (timezone != null) { -// Label timeZoneLabel = new Label(timezone.getTimeOlson()); -// setGraphic(timeZoneLabel); -// } -// } -// }; -// -// return timeZoneCell; -// } -// }); theDataSet = getParent().getCurrentDataset(); tableViewAirportRD.setItems(FXCollections.observableArrayList(theDataSet.getAirports())); + airpDSTCBox.setValue("E"); airpDSTCBox.getItems().addAll("E", "A", "S", "O", "Z", "N", "U"); } @@ -147,4 +131,9 @@ public class AirportRDController extends Controller{ } } + public void deleteAirport(){ + Airport toDelete = tableViewAirportRD.getSelectionModel().getSelectedItem(); + theDataSet.deleteAirport(toDelete); + tableViewAirportRD.setItems(FXCollections.observableArrayList(theDataSet.getAirports())); + } } diff --git a/src/main/java/seng202/group9/GUI/RouteRDController.java b/src/main/java/seng202/group9/GUI/RouteRDController.java index f2994b8..6044ebc 100644 --- a/src/main/java/seng202/group9/GUI/RouteRDController.java +++ b/src/main/java/seng202/group9/GUI/RouteRDController.java @@ -5,6 +5,7 @@ import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.scene.control.cell.PropertyValueFactory; import seng202.group9.Controller.App; +import seng202.group9.Controller.DataException; import seng202.group9.Controller.Dataset; import seng202.group9.Core.Route; @@ -66,12 +67,19 @@ public class RouteRDController extends Controller { rStopsBox.clear(); rEquipmentBox.clear(); tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes())); - } catch ( Exception e ) { + } catch (DataException 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(); + } catch ( Exception e ) { + e.printStackTrace(); + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Route Error"); + alert.setHeaderText("Error adding a custom route entry."); + alert.setContentText(e.getMessage()); + alert.showAndWait(); } } @@ -89,6 +97,14 @@ public class RouteRDController extends Controller { theDataSet = getParent().getCurrentDataset(); tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes())); + rCodeshareCBox.setValue(""); rCodeshareCBox.getItems().addAll("Y", ""); + + } + + public void deleteRoute(){ + Route toDelete = tableViewRouteRD.getSelectionModel().getSelectedItem(); + theDataSet.deleteRoute(toDelete); + tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes())); } } diff --git a/src/main/resources/airline_raw_data.fxml b/src/main/resources/airline_raw_data.fxml index b5829d2..5442c28 100644 --- a/src/main/resources/airline_raw_data.fxml +++ b/src/main/resources/airline_raw_data.fxml @@ -3,7 +3,9 @@ + + @@ -34,7 +36,7 @@