From 7396ea1f04f7f3f9eb297775e1f2ee7bee230594 Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Sat, 24 Sep 2016 18:18:34 +1200 Subject: [PATCH] Fixed up delete Flight Point so that it updates the flight path on delete as well as recalulating distances --- .../seng202/group9/Controller/Dataset.java | 42 ++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/src/main/java/seng202/group9/Controller/Dataset.java b/src/main/java/seng202/group9/Controller/Dataset.java index 688f4b7..7ca792b 100644 --- a/src/main/java/seng202/group9/Controller/Dataset.java +++ b/src/main/java/seng202/group9/Controller/Dataset.java @@ -1595,17 +1595,49 @@ public class Dataset { String deleteQuery = "DELETE FROM `"+this.name+"_Flight_Points` WHERE `Point_ID` = " + flightPoint.getID() + ";"; stmt = c.createStatement(); stmt.execute(deleteQuery); + + stmt = c.createStatement(); + String updatePointOrderQuery = ""; + for (int i = 0; i < flightPath.getFlightPoints().size(); i ++){ + updatePointOrderQuery = "UPDATE `"+this.name+"_Flight_Points` SET `Order` = "+i+" WHERE `Point_ID` = "+flightPath.getFlightPoints().get(i).getID()+";"; + stmt.execute(updatePointOrderQuery); + } + stmt.close(); + + int index = flightPath.getFlightPoints().indexOf(flightPoint); + + if (index == 0){ + try { + stmt = c.createStatement(); + String query = "UPDATE `"+this.name+"_Flight_Path` SET `Source_Airport` = \""+flightPoint.getName().replace("\"", "\"\"")+"\" " + + "WHERE `Path_ID` = "+flightPoint.getIndex(); + stmt.execute(query); + c.close(); + } catch ( Exception e ) { + System.err.println( e.getClass().getName() + ": " + e.getMessage() ); + } + flightPath.setDepartureAirport(flightPoint.getName()); + }else if (index == flightPath.getFlightPoints().size() - 1){ + try { + stmt = c.createStatement(); + String query = "UPDATE `"+this.name+"_Flight_Path` SET `Destination_Airport` = \""+flightPoint.getName().replace("\"", "\"\"")+"\" " + + "WHERE `Path_ID` = "+flightPoint.getIndex(); + stmt.execute(query); + c.close(); + } catch ( Exception e ) { + System.err.println( e.getClass().getName() + ": " + e.getMessage() ); + } + flightPath.setArrivalAirport(flightPoint.getName()); + } + c.close(); } catch ( Exception e ) { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); System.exit(0); } flightPath.getFlightPoints().remove(flightPoint); - try { - flightPointDictionary.remove(flightPoint.getID()); - } catch (DataException e) { - e.printStackTrace(); - } + flightPointDictionary.remove(flightPoint); + updateFlightPointInfo(flightPath); } /**