From ed15c2bd761fe61992673aab5df936480b2f1a09 Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Fri, 23 Sep 2016 10:16:56 +1200 Subject: [PATCH] Added Change Path Source and Destination Airports on changing the first or last entry in the flight points --- res/userdb.db | Bin 8387584 -> 8387584 bytes .../java/seng202/group9/Controller/App.java | 1 + .../seng202/group9/Controller/Dataset.java | 67 +++++++++++++++--- 3 files changed, 60 insertions(+), 8 deletions(-) diff --git a/res/userdb.db b/res/userdb.db index 4ed487654814cd8370c1674f904d118286f24358..52a9ddc9252c8c7337f24c2149ae15435fe52550 100644 GIT binary patch delta 3062 zcmeHJYfKbZ6rQ0= zm0k&U<>D`bgfjXCR_`AcAKg43t5~ z;KSg{;K$(45Wo<~5X2D75W+BvVKzf3Ll{FigBmMxXdpr_W*DfB)9cHemZBQF-5$ts z98d3Y^q!jbE!uZ0$Y%wmJ`?m9`weu{G3uo0)Sp}?17t6$C(DQ*|2_W!ukcQOF|Xr( z;0Cz8oXeAT!Y_HX;0WOjTm;8a&d-m9wp(pgjsmO9y*@G=9Tyk$*=z5LbqQ7WTbt_i zW_t)9F-7Ycw&|n0B85tA2y026RO$_pkeb|co4+o)GTu5~`K2ymVZ|dYuRcz4luEWq z?H{76r{V_2o(MPFw9m0v%c{#O)r^+(f7)j1Hj3;2RHVDN&x8r(A&=rsr0;Q6=uO$7 zLYbC!SW8Q--jtUAl5}C;+@oSc)tvjfGbd*!m4@(PQ%`lQLT_xHC6s7G6iX#lh29XE z*EX=LMQk)IV^?~JP^{J3%1iRAz1plBp6at%Tg1lv){)USxnNd&jtzFYeT6)&*0aE_ zH?8!Ew>+ka+D=s^?hfzVAMjv2w4M`Ba*%Gxy z1E{5lbpzisoIk7#?sWT$%{|+0+{@gbkQ2h|)%WPH%KWK1GLp?PoPTO<<`>0{mh zKc2pf|2lo$qn4zhQH!}hh2PQb-eMkdZ%KA>}g*U;J16L3*AZ zp`Fx5j;OclY+d|nVYy}-kQtn5jyYYk`pAScWk(Ckv>|42CZmw1)lN7`m!2HqQl|JL zk%}GVdFn#L`=4Cu2$rgU;zVcH8(G7r(+Dvy(Wdc4pd9VG- z?W|$3c6{j0NMcc#jtNsI+-YL@@x*iUL9(HhGMe)>a0{0{N?Ns3@=tbZ5K)lsnvRV$CFKAu|mc)`XfeX&lOf`X}gqbE%9#q&$I7KA*6e1rmoLWCj&E5cfYVuTWeQiL*uas(Sf1wti) z9l?Q6g;0%9gCHZ+A~+G&A=Dwb5Y{8qBQzj1A~Yd9i|`ymGr|UhjR-9WtqAN0n-JO% vo=12AVKc%OgsliKBD5oPAiRX|GQu{5?Fc&%UO{*jp%Y;z!mbaYtAFfo3%?O! delta 2596 zcmeH|YfKbZ6vyw(U04?6;V$C>i%=BTSy4b+o<*2pc`7Um3&=xYfr5C71q-d(LfxoG zlE$_2DDz5kv0pX-`_LS2kr6Ia_8ZslrEIzJB#*+=Lfbc|l21N0-hkLK`a=D$ax^qY^w z>(l-PNr%tqzv2^kcVCqdtR=1xZ<@f({RoK^yy$veXH!S#>W;dc*6rI`I_vE9oh|zZ z3_Sw|j=?i1L&NZ5cr&yNABK+M%kX0?VfZrw7=er+#!`l!q4WwK954t{vXRpeL9kU> z^R_q~4qrkDM;{aVcoBB~(XzWeS+g>kQk~9guIDVf`nu>Wb<#Ad=kM^}@*na$`CNWE z_kg?1ea7wPY@C^+WR#pFJ?{7+ttCY?`s<9uKnNvTEg_Dw!pyRq{0eelWZ2*pF;qO| zlB!Rg>>6KpS6rs5bnmbWra-gcuQM#%?*8RhOK6}Ntgh7EvY0kR8J>w8TSzV~lEMR$gEd4d+(OgZ0WQ6lnuJmi`lYbkXi&LCawzf*DYPxi|i;bDp7nSU75L{ zsXie&&xCDU*E1~!sP8>L*U(=rPBF1jT%r3#_D^QoDn+RwX3yCRA0IONsy()q2%)uRol4v+m)f#2m90zHXHSez?2#HS z_q%R3#jo;FIdoKd97@y2@26(8N)6)|!#gbxMXhQ#?z<&|sYdixiS~lB+^1&b@4tJ0 ztN5qXSnlV%|Fv_4*Fq()yb=XPHjf$Wz1!)dmB+|2QL|8^JQZ*VroAFniRH2_>**5N z34fi9`{bI`6yqH|78f4PdyMdNZ=E%d8R2?|vxg6U)9vz+ntFFl&7>TS=KOVn@<4s& zs+0i9_R`_(bDL7GbOlLGeT3+KFe-V9q_ID$MjwyphxpdYzu4?>-Nt65Z#4 z^bFbmE0A^naUgppt*Zwotz!RLuDi$8E)KfdEv~lyR?CgS8*42h{X%ow5)$mg4-xtk zJdTx` z)uT&SFXr0CFjb}7`J08EQlV<`5EIvkAu7=!XXY1pdIlK|{&;VT|0NQqF)pN zVGTkI!dirN2(bup2=NH(5jG&ai0~3Z0zx7}5<)UU3PLKv%Lr)*8xhhGG7uyL86gwF zijaknjgW(oi;#zqkFW`0GeQAEA%YE|2*Hj}j8KB$Kqy5hLnuesf>41_iBN@5jj$D= z2B8+A4#9~~kI;b7i0}$R6GAh>HiQ<0?Fh`ms|c+KI}lz&XhUd6*op8uLI*-8!W#&0 bBJ4ugjj#vdErhobx)8b%-Z>3>`)B_KSktaF diff --git a/src/main/java/seng202/group9/Controller/App.java b/src/main/java/seng202/group9/Controller/App.java index 99d83be..0426b3d 100644 --- a/src/main/java/seng202/group9/Controller/App.java +++ b/src/main/java/seng202/group9/Controller/App.java @@ -14,6 +14,7 @@ import javafx.scene.layout.AnchorPane; import javafx.scene.layout.BorderPane; import javafx.scene.layout.VBox; import javafx.stage.Stage; +import seng202.group9.Core.FlightPath; import seng202.group9.GUI.*; /** diff --git a/src/main/java/seng202/group9/Controller/Dataset.java b/src/main/java/seng202/group9/Controller/Dataset.java index e25f782..09e6c94 100644 --- a/src/main/java/seng202/group9/Controller/Dataset.java +++ b/src/main/java/seng202/group9/Controller/Dataset.java @@ -168,7 +168,7 @@ public class Dataset { //get all Flight Path// /////////////////////*/ stmt = c.createStatement(); - String queryFlightPath = "SELECT * FROM `"+this.name+"_Flight_Path` ORDER BY `Index_ID` ASC, `Order` ASC"; + String queryFlightPath = "SELECT * FROM `"+this.name+"_Flight_Path`"; rs = stmt.executeQuery(queryFlightPath); while ( rs.next() ){ //FlightPath(int ID, String departureAirport, String arrivalAirport) @@ -187,7 +187,7 @@ public class Dataset { ///////////////////////*/ for (int i = 0; i < flightPaths.size(); i++){ stmt = c.createStatement(); - String queryFlightPoints = "SELECT * FROM `" + this.name + "_Flight_Points` WHERE `Index_ID` = "+flightPaths.get(i).getID() + " ORDER BY `Order` ASC"; + String queryFlightPoints = "SELECT * FROM `" + this.name + "_Flight_Points` WHERE `Index_ID` = "+flightPaths.get(i).getID() + " ORDER BY `Index_ID` ASC, `Order` ASC"; rs = stmt.executeQuery(queryFlightPoints); while (rs.next()) { //FlightPoint(String name, int ID, int indexID, String type, String via, @@ -1242,10 +1242,34 @@ public class Dataset { String updatePointOrderQuery = ""; FlightPath flightPath = flightPathDictionary.get(Integer.valueOf(id)); for (int i = index + 1; i < flightPath.getFlightPoints().size(); i ++){ - updatePointOrderQuery += "UPDATE `"+this.name+"_Flight_Points` SET `Order` = "+i+" WHERE `Point_ID` = "+flightPath.getFlightPoints().get(i).getID()+";"; + updatePointOrderQuery = "UPDATE `"+this.name+"_Flight_Points` SET `Order` = "+i+" WHERE `Point_ID` = "+flightPath.getFlightPoints().get(i).getID()+";"; + stmt.execute(updatePointOrderQuery); } - stmt.execute(updatePointOrderQuery); stmt.close(); + //if the index is the first or last we need to update the flight + if (index == 0){ + try { + stmt = c.createStatement(); + String query = "UPDATE `"+this.name+"_Flight_Path` SET `Source_Airport` = \""+flightName+"\" " + + "WHERE `Path_ID` = "+flightPath.getID(); + stmt.execute(query); + c.close(); + } catch ( Exception e ) { + System.err.println( e.getClass().getName() + ": " + e.getMessage() ); + } + flightPath.setDepartureAirport(flightName); + }else if (index == flightPath.getFlightPoints().size() - 1){ + try { + stmt = c.createStatement(); + String query = "UPDATE `"+this.name+"_Flight_Path` SET `Destination_Airport` = \""+flightName+"\" " + + "WHERE `Path_ID` = "+flightPath.getID(); + stmt.execute(query); + c.close(); + } catch ( Exception e ) { + System.err.println( e.getClass().getName() + ": " + e.getMessage() ); + } + flightPath.setArrivalAirport(flightName); + } c.close(); } catch ( Exception e ) { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); @@ -1925,6 +1949,7 @@ public class Dataset { } catch ( Exception e ) { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); } + flightPath.setDepartureAirport(flightPoint.getName()); }else if (indexOf == flightPath.getFlightPoints().size() - 1){ try { stmt = c.createStatement(); @@ -1935,6 +1960,7 @@ public class Dataset { } catch ( Exception e ) { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); } + flightPath.setArrivalAirport(flightPoint.getName()); } createDataLinks(); @@ -1942,11 +1968,12 @@ public class Dataset { public void moveFlightPoint(FlightPoint flightPoint, int index) throws DataException { //remove and add it to the arraylist first - FlightPath flightPath = flightPathDictionary.get(flightPoint.getIndexID()); + System.out.println(flightPoint.getIndex()); + FlightPath flightPath = flightPathDictionary.get(flightPoint.getIndex()); int curIndex = flightPath.getFlightPoints().indexOf(flightPoint); flightPath.getFlightPoints().remove(flightPoint); int indexToAdd = index; - if (curIndex > index){ + if (curIndex < index){ indexToAdd --; } flightPath.getFlightPoints().add(indexToAdd, flightPoint); @@ -1959,10 +1986,34 @@ public class Dataset { stmt = c.createStatement(); String updatePointOrderQuery = ""; for (int i = index; i < flightPath.getFlightPoints().size(); i ++){ - updatePointOrderQuery += "UPDATE `"+this.name+"_Flight_Points` SET `Order` = "+i+" WHERE `Point_ID` = "+flightPath.getFlightPoints().get(i).getID()+";"; + updatePointOrderQuery = "UPDATE `"+this.name+"_Flight_Points` SET `Order` = "+i+" WHERE `Point_ID` = "+flightPath.getFlightPoints().get(i).getID()+";"; + stmt.execute(updatePointOrderQuery); } - stmt.execute(updatePointOrderQuery); stmt.close(); + + 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() );