From ebe82fb6ed0691705a77190c86f0463ba75d5c0a Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Fri, 16 Sep 2016 14:10:48 +1200 Subject: [PATCH 1/5] Initial commit for Session --- src/main/java/seng202/group9/Controller/App.java | 7 +++++++ .../java/seng202/group9/Controller/SceneCode.java | 9 +++++++++ .../java/seng202/group9/Controller/Session.java | 14 ++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 src/main/java/seng202/group9/Controller/SceneCode.java create mode 100644 src/main/java/seng202/group9/Controller/Session.java diff --git a/src/main/java/seng202/group9/Controller/App.java b/src/main/java/seng202/group9/Controller/App.java index 86f3555..fb5006c 100644 --- a/src/main/java/seng202/group9/Controller/App.java +++ b/src/main/java/seng202/group9/Controller/App.java @@ -2,6 +2,7 @@ package seng202.group9.Controller; import java.io.IOException; import java.io.InputStream; +import java.io.Serializable; import java.util.ArrayList; import javafx.application.Application; @@ -113,6 +114,12 @@ public class App extends Application } + /** + * Serialize the exiting session + */ + public void stop(){ + + } /** * Replace Scene Content with fxml file code from oracle. * @param fxml diff --git a/src/main/java/seng202/group9/Controller/SceneCode.java b/src/main/java/seng202/group9/Controller/SceneCode.java new file mode 100644 index 0000000..7262b7a --- /dev/null +++ b/src/main/java/seng202/group9/Controller/SceneCode.java @@ -0,0 +1,9 @@ +package seng202.group9.Controller; + +/** + * Created by fwy13 on 16/09/16. + */ +public enum SceneCode { + INITIAL, AIRLINE_SUMMARY, AIRLINE_RAW_DATA, AIRPORT_SUMMARY, AIRPORT_RAW_DATA, + ROUTE_SUMMARY, ROUTE_RAW_DATA, FLIGHT_SUMMARY, FLIGHT_RAW_DATA +} diff --git a/src/main/java/seng202/group9/Controller/Session.java b/src/main/java/seng202/group9/Controller/Session.java new file mode 100644 index 0000000..0476294 --- /dev/null +++ b/src/main/java/seng202/group9/Controller/Session.java @@ -0,0 +1,14 @@ +package seng202.group9.Controller; + +import java.io.Serializable; + +/** + * Created by fwy13 on 16/09/16. + */ +public class Session implements Serializable { + private SceneCode sceneDisplayed = SceneCode.INITIAL; + + public void setSceneDisplayed(SceneCode sceneDisplayed) { + this.sceneDisplayed = sceneDisplayed; + } +} From d0148d9e73fbe7fb79281f1a83fd225560b84573 Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Fri, 16 Sep 2016 17:00:25 +1200 Subject: [PATCH 2/5] Added Enums for each Open View for easier storage for Session. --- .../java/seng202/group9/Controller/App.java | 8 ++++++-- .../seng202/group9/Controller/SceneCode.java | 16 ++++++++++++++-- .../java/seng202/group9/Controller/Session.java | 11 ++++++++++- .../group9/GUI/AirlineSummaryController.java | 9 +++++---- .../group9/GUI/AirportSummaryController.java | 9 +++++---- .../group9/GUI/FlightSummaryController.java | 9 +++++---- .../java/seng202/group9/GUI/MenuController.java | 17 +++++++++-------- .../group9/GUI/RouteSummaryController.java | 9 +++++---- 8 files changed, 59 insertions(+), 29 deletions(-) diff --git a/src/main/java/seng202/group9/Controller/App.java b/src/main/java/seng202/group9/Controller/App.java index fb5006c..599d03f 100644 --- a/src/main/java/seng202/group9/Controller/App.java +++ b/src/main/java/seng202/group9/Controller/App.java @@ -28,6 +28,7 @@ public class App extends Application private Dataset currentDataset = null; private Stage primaryStage = null; private VBox mainContainer; + private Session session; public static void main( String[] args ) { @@ -40,6 +41,7 @@ public class App extends Application @Override public void start(Stage primaryStage) { this.primaryStage = primaryStage; + this.session = new Session(); //load the menu and the first container try { FXMLLoader loader = new FXMLLoader(); @@ -126,9 +128,9 @@ public class App extends Application * @return * @throws Exception */ - public Initializable replaceSceneContent(String fxml) throws Exception { + public Initializable replaceSceneContent(SceneCode fxml) throws Exception { FXMLLoader loader = new FXMLLoader(); - InputStream in = getClass().getClassLoader().getResourceAsStream(fxml); + InputStream in = getClass().getClassLoader().getResourceAsStream(fxml.getFilePath()); Parent page; try { page = (Parent) loader.load(in); @@ -139,6 +141,8 @@ public class App extends Application mainContainer.getChildren().remove(1); } mainContainer.getChildren().add(page); + //change session code to fit with the serialisation + session.setSceneDisplayed(fxml); return (Initializable) loader.getController(); } diff --git a/src/main/java/seng202/group9/Controller/SceneCode.java b/src/main/java/seng202/group9/Controller/SceneCode.java index 7262b7a..3b2d15b 100644 --- a/src/main/java/seng202/group9/Controller/SceneCode.java +++ b/src/main/java/seng202/group9/Controller/SceneCode.java @@ -4,6 +4,18 @@ package seng202.group9.Controller; * Created by fwy13 on 16/09/16. */ public enum SceneCode { - INITIAL, AIRLINE_SUMMARY, AIRLINE_RAW_DATA, AIRPORT_SUMMARY, AIRPORT_RAW_DATA, - ROUTE_SUMMARY, ROUTE_RAW_DATA, FLIGHT_SUMMARY, FLIGHT_RAW_DATA + INITIAL(""), AIRLINE_SUMMARY("airline_summary.fxml"), AIRLINE_RAW_DATA("airline_raw_data.fxml"), + AIRPORT_SUMMARY("airport_summary.fxml"), AIRPORT_RAW_DATA("airport_raw_data.fxml"), + ROUTE_SUMMARY("routes_summary.fxml"), ROUTE_RAW_DATA("route_raw_data.fxml"), FLIGHT_SUMMARY("flight_data_summary.fxml"), + FLIGHT_RAW_DATA("flight_raw_data.fxml"); + + private String filePath; + + SceneCode(String filePath){ + this.filePath = filePath; + } + + public String getFilePath(){ + return filePath; + } } diff --git a/src/main/java/seng202/group9/Controller/Session.java b/src/main/java/seng202/group9/Controller/Session.java index 0476294..eeb4136 100644 --- a/src/main/java/seng202/group9/Controller/Session.java +++ b/src/main/java/seng202/group9/Controller/Session.java @@ -6,7 +6,16 @@ import java.io.Serializable; * Created by fwy13 on 16/09/16. */ public class Session implements Serializable { - private SceneCode sceneDisplayed = SceneCode.INITIAL; + private SceneCode sceneDisplayed; + + public Session(){ + //blank constructor + this.sceneDisplayed = SceneCode.INITIAL; + } + + public Session(SceneCode scene){ + this.sceneDisplayed = scene; + } public void setSceneDisplayed(SceneCode sceneDisplayed) { this.sceneDisplayed = sceneDisplayed; diff --git a/src/main/java/seng202/group9/GUI/AirlineSummaryController.java b/src/main/java/seng202/group9/GUI/AirlineSummaryController.java index 07be386..d22bce6 100644 --- a/src/main/java/seng202/group9/GUI/AirlineSummaryController.java +++ b/src/main/java/seng202/group9/GUI/AirlineSummaryController.java @@ -7,6 +7,7 @@ import javafx.scene.control.TableView; import javafx.scene.control.cell.PropertyValueFactory; import seng202.group9.Controller.App; import seng202.group9.Controller.Dataset; +import seng202.group9.Controller.SceneCode; import seng202.group9.Core.Airline; /** @@ -46,7 +47,7 @@ public class AirlineSummaryController extends MenuController{ public void airlineRawDataButton() { try { AirlineRDController rawDataController = (AirlineRDController) - parent.replaceSceneContent("airline_raw_data.fxml"); + parent.replaceSceneContent(SceneCode.AIRLINE_RAW_DATA); rawDataController.setApp(parent); rawDataController.loadTables(); } @@ -57,7 +58,7 @@ public class AirlineSummaryController extends MenuController{ public void flightSummaryButton() { try { FlightSummaryController summaryController = (FlightSummaryController) - parent.replaceSceneContent("flight_data_summary.fxml"); + parent.replaceSceneContent(SceneCode.FLIGHT_SUMMARY); summaryController.setApp(parent); summaryController.flightPathListView(); } @@ -68,7 +69,7 @@ public class AirlineSummaryController extends MenuController{ public void airportSummaryButton() { try { AirportSummaryController summaryController = (AirportSummaryController) - parent.replaceSceneContent("airport_summary.fxml"); + parent.replaceSceneContent(SceneCode.AIRPORT_SUMMARY); summaryController.setApp(parent); summaryController.loadTables(); } @@ -79,7 +80,7 @@ public class AirlineSummaryController extends MenuController{ public void routeSummaryButton() { try { RouteSummaryController summaryController = (RouteSummaryController) - parent.replaceSceneContent("routes_summary.fxml"); + parent.replaceSceneContent(SceneCode.ROUTE_SUMMARY); summaryController.setApp(parent); summaryController.loadTables(); } diff --git a/src/main/java/seng202/group9/GUI/AirportSummaryController.java b/src/main/java/seng202/group9/GUI/AirportSummaryController.java index 03d3dad..7e98673 100644 --- a/src/main/java/seng202/group9/GUI/AirportSummaryController.java +++ b/src/main/java/seng202/group9/GUI/AirportSummaryController.java @@ -7,6 +7,7 @@ import javafx.scene.control.TableView; import javafx.scene.control.cell.PropertyValueFactory; import seng202.group9.Controller.App; import seng202.group9.Controller.Dataset; +import seng202.group9.Controller.SceneCode; import seng202.group9.Core.Airport; /** @@ -47,7 +48,7 @@ public class AirportSummaryController extends MenuController{ public void airportRawDataButton() { try { AirportRDController rawDataController = (AirportRDController) - parent.replaceSceneContent("airport_raw_data.fxml"); + parent.replaceSceneContent(SceneCode.AIRPORT_RAW_DATA); rawDataController.setApp(parent); rawDataController.loadTables(); } @@ -58,7 +59,7 @@ public class AirportSummaryController extends MenuController{ public void flightSummaryButton() { try { FlightSummaryController summaryController = (FlightSummaryController) - parent.replaceSceneContent("flight_data_summary.fxml"); + parent.replaceSceneContent(SceneCode.FLIGHT_SUMMARY); summaryController.setApp(parent); summaryController.flightPathListView(); } @@ -69,7 +70,7 @@ public class AirportSummaryController extends MenuController{ public void routeSummaryButton() { try { RouteSummaryController summaryController = (RouteSummaryController) - parent.replaceSceneContent("routes_summary.fxml"); + parent.replaceSceneContent(SceneCode.ROUTE_SUMMARY); summaryController.setApp(parent); summaryController.loadTables(); } @@ -80,7 +81,7 @@ public class AirportSummaryController extends MenuController{ public void airlineSummaryButton() { try { AirlineSummaryController summaryController = (AirlineSummaryController) - parent.replaceSceneContent("airline_summary.fxml"); + parent.replaceSceneContent(SceneCode.AIRLINE_SUMMARY); summaryController.setApp(parent); summaryController.loadTables(); } diff --git a/src/main/java/seng202/group9/GUI/FlightSummaryController.java b/src/main/java/seng202/group9/GUI/FlightSummaryController.java index a534407..cbccbca 100644 --- a/src/main/java/seng202/group9/GUI/FlightSummaryController.java +++ b/src/main/java/seng202/group9/GUI/FlightSummaryController.java @@ -11,6 +11,7 @@ import javafx.scene.control.ListView; import javafx.scene.control.TableView; import seng202.group9.Controller.App; import seng202.group9.Controller.Dataset; +import seng202.group9.Controller.SceneCode; import seng202.group9.Core.FlightPath; import seng202.group9.Core.FlightPoint; @@ -66,7 +67,7 @@ public class FlightSummaryController implements Initializable { public void handleRawDataButton() { try { FlightRawDataController rawDataController = (FlightRawDataController) - parent.replaceSceneContent("flight_raw_data.fxml"); + parent.replaceSceneContent(SceneCode.FLIGHT_RAW_DATA); rawDataController.setApp(parent); rawDataController.loadTables(); rawDataController.flightPathListView(); @@ -79,7 +80,7 @@ public class FlightSummaryController implements Initializable { public void airportSummaryButton() { try { AirportSummaryController summaryController = (AirportSummaryController) - parent.replaceSceneContent("airport_summary.fxml"); + parent.replaceSceneContent(SceneCode.AIRPORT_SUMMARY); summaryController.setApp(parent); summaryController.loadTables(); } @@ -90,7 +91,7 @@ public class FlightSummaryController implements Initializable { public void routeSummaryButton() { try { RouteSummaryController summaryController = (RouteSummaryController) - parent.replaceSceneContent("routes_summary.fxml"); + parent.replaceSceneContent(SceneCode.ROUTE_SUMMARY); summaryController.setApp(parent); summaryController.loadTables(); } @@ -101,7 +102,7 @@ public class FlightSummaryController implements Initializable { public void airlineSummaryButton() { try { AirlineSummaryController summaryController = (AirlineSummaryController) - parent.replaceSceneContent("airline_summary.fxml"); + parent.replaceSceneContent(SceneCode.AIRLINE_SUMMARY); summaryController.setApp(parent); summaryController.loadTables(); } diff --git a/src/main/java/seng202/group9/GUI/MenuController.java b/src/main/java/seng202/group9/GUI/MenuController.java index 7167741..26e23fa 100644 --- a/src/main/java/seng202/group9/GUI/MenuController.java +++ b/src/main/java/seng202/group9/GUI/MenuController.java @@ -11,6 +11,7 @@ import javafx.scene.layout.BorderPane; import javafx.stage.Stage; import seng202.group9.Controller.App; +import seng202.group9.Controller.SceneCode; public class MenuController implements Initializable{ @@ -37,7 +38,7 @@ public class MenuController implements Initializable{ */ public void viewAirlineRawData() { try { - AirlineRDController summaryController = (AirlineRDController) parent.replaceSceneContent("airline_raw_data.fxml"); + AirlineRDController summaryController = (AirlineRDController) parent.replaceSceneContent(SceneCode.AIRLINE_RAW_DATA); summaryController.setApp(parent); summaryController.loadTables(); } catch (Exception e) { @@ -47,7 +48,7 @@ public class MenuController implements Initializable{ public void viewAirportRawData() { try { - AirportRDController summaryController = (AirportRDController) parent.replaceSceneContent("airport_raw_data.fxml"); + AirportRDController summaryController = (AirportRDController) parent.replaceSceneContent(SceneCode.AIRPORT_RAW_DATA); summaryController.setApp(parent); summaryController.loadTables(); } catch (Exception e) { @@ -57,7 +58,7 @@ public class MenuController implements Initializable{ public void viewRouteRawData() { try { - RouteRDController summaryController = (RouteRDController) parent.replaceSceneContent("route_raw_data.fxml"); + RouteRDController summaryController = (RouteRDController) parent.replaceSceneContent(SceneCode.ROUTE_RAW_DATA); summaryController.setApp(parent); summaryController.loadTables(); } catch (Exception e) { @@ -67,7 +68,7 @@ public class MenuController implements Initializable{ public void viewAirlineSummary() { try { - AirlineSummaryController summaryController = (AirlineSummaryController) parent.replaceSceneContent("airline_summary.fxml"); + AirlineSummaryController summaryController = (AirlineSummaryController) parent.replaceSceneContent(SceneCode.AIRLINE_SUMMARY); summaryController.setApp(parent); summaryController.loadTables(); } catch (Exception e) { @@ -77,7 +78,7 @@ public class MenuController implements Initializable{ public void viewAirportSummary() { try { - AirportSummaryController summaryController = (AirportSummaryController) parent.replaceSceneContent("airport_summary.fxml"); + AirportSummaryController summaryController = (AirportSummaryController) parent.replaceSceneContent(SceneCode.AIRPORT_SUMMARY); summaryController.setApp(parent); summaryController.loadTables(); } catch (Exception e) { @@ -87,7 +88,7 @@ public class MenuController implements Initializable{ public void viewRouteSummary() { try { - RouteSummaryController summaryController = (RouteSummaryController) parent.replaceSceneContent("routes_summary.fxml"); + RouteSummaryController summaryController = (RouteSummaryController) parent.replaceSceneContent(SceneCode.ROUTE_SUMMARY); summaryController.setApp(parent); summaryController.loadTables(); } catch (Exception e) { @@ -104,7 +105,7 @@ public class MenuController implements Initializable{ */ public void viewFlightSummary() { try { - FlightSummaryController summaryController = (FlightSummaryController) parent.replaceSceneContent("flight_data_summary.fxml"); + FlightSummaryController summaryController = (FlightSummaryController) parent.replaceSceneContent(SceneCode.FLIGHT_SUMMARY); summaryController.setApp(parent); summaryController.flightPathListView(); } catch (Exception e) { @@ -118,7 +119,7 @@ public class MenuController implements Initializable{ public void viewFlightRawData() { try { FlightRawDataController rawDataController = (FlightRawDataController) - parent.replaceSceneContent("flight_raw_data.fxml"); + parent.replaceSceneContent(SceneCode.FLIGHT_RAW_DATA); rawDataController.setApp(parent); rawDataController.loadTables(); rawDataController.flightPathListView(); diff --git a/src/main/java/seng202/group9/GUI/RouteSummaryController.java b/src/main/java/seng202/group9/GUI/RouteSummaryController.java index b5f023e..8c762ca 100644 --- a/src/main/java/seng202/group9/GUI/RouteSummaryController.java +++ b/src/main/java/seng202/group9/GUI/RouteSummaryController.java @@ -7,6 +7,7 @@ import javafx.scene.control.TableView; import javafx.scene.control.cell.PropertyValueFactory; import seng202.group9.Controller.App; import seng202.group9.Controller.Dataset; +import seng202.group9.Controller.SceneCode; import seng202.group9.Core.Route; /** @@ -46,7 +47,7 @@ public class RouteSummaryController extends MenuController{ public void routeRawDataButton() { try { RouteRDController rawDataController = (RouteRDController) - parent.replaceSceneContent("route_raw_data.fxml"); + parent.replaceSceneContent(SceneCode.ROUTE_RAW_DATA); rawDataController.setApp(parent); rawDataController.loadTables(); } @@ -57,7 +58,7 @@ public class RouteSummaryController extends MenuController{ public void flightSummaryButton() { try { FlightSummaryController summaryController = (FlightSummaryController) - parent.replaceSceneContent("flight_data_summary.fxml"); + parent.replaceSceneContent(SceneCode.FLIGHT_SUMMARY); summaryController.setApp(parent); summaryController.flightPathListView(); } @@ -68,7 +69,7 @@ public class RouteSummaryController extends MenuController{ public void airportSummaryButton() { try { AirportSummaryController summaryController = (AirportSummaryController) - parent.replaceSceneContent("airport_summary.fxml"); + parent.replaceSceneContent(SceneCode.AIRPORT_SUMMARY); summaryController.setApp(parent); summaryController.loadTables(); } @@ -79,7 +80,7 @@ public class RouteSummaryController extends MenuController{ public void airlineSummaryButton() { try { AirlineSummaryController summaryController = (AirlineSummaryController) - parent.replaceSceneContent("airline_summary.fxml"); + parent.replaceSceneContent(SceneCode.AIRLINE_SUMMARY); summaryController.setApp(parent); summaryController.loadTables(); } From bf8c1d1fdf0503a0aadae8a6df71e911123bbdb8 Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Fri, 16 Sep 2016 17:03:17 +1200 Subject: [PATCH 3/5] Added Serialisation for the Session Code --- res/session.ser | Bin 0 -> 202 bytes src/main/java/seng202/group9/Controller/App.java | 15 +++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 res/session.ser diff --git a/res/session.ser b/res/session.ser new file mode 100644 index 0000000000000000000000000000000000000000..7139935802ec9bfaf5d64fecd82a9eb0f4ab9170 GIT binary patch literal 202 zcmZ4UmVvdnh(WP9H80)Bz(_B>D8ID8QqMU*ucRnHCnvQ?FF3WhI5R&_F7~FtL$xyv zObm=Z41C4Osd=d`nZ*S;iIu4-B@C)QPy_TK2IwOU&<_TwbhIl&q002u5KKB3s literal 0 HcmV?d00001 diff --git a/src/main/java/seng202/group9/Controller/App.java b/src/main/java/seng202/group9/Controller/App.java index 599d03f..5675473 100644 --- a/src/main/java/seng202/group9/Controller/App.java +++ b/src/main/java/seng202/group9/Controller/App.java @@ -1,8 +1,6 @@ package seng202.group9.Controller; -import java.io.IOException; -import java.io.InputStream; -import java.io.Serializable; +import java.io.*; import java.util.ArrayList; import javafx.application.Application; @@ -120,7 +118,16 @@ public class App extends Application * Serialize the exiting session */ public void stop(){ - + try{ + FileOutputStream fileOut = new FileOutputStream("res/session.ser"); + ObjectOutputStream out = new ObjectOutputStream(fileOut); + out.writeObject(session); + out.close(); + fileOut.close(); + System.out.println("Session has been serialised for next load"); + }catch(IOException e){ + e.printStackTrace(); + } } /** * Replace Scene Content with fxml file code from oracle. From 5641cc3728b9c8edc79a932008eb32dac50f89ea Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Fri, 16 Sep 2016 17:23:06 +1200 Subject: [PATCH 4/5] Loaded Observers to Session loading --- res/session.ser | Bin 202 -> 210 bytes .../java/seng202/group9/Controller/App.java | 58 ++++++++++++++++-- .../seng202/group9/Controller/Session.java | 4 ++ 3 files changed, 57 insertions(+), 5 deletions(-) diff --git a/res/session.ser b/res/session.ser index 7139935802ec9bfaf5d64fecd82a9eb0f4ab9170..2fd690973cadd5628d444add02d152b101c21e85 100644 GIT binary patch delta 35 qcmX@bc!_a>CWjPzowS0{QO1de69xDkJ%a-LgF@niLw$W6gCYUB-3n3w delta 27 jcmcb_c#3g?CWl Date: Fri, 16 Sep 2016 21:49:12 +1200 Subject: [PATCH 5/5] Implemented Abstract Controller class which made code a lot short and easier to read --- res/session.ser | Bin 210 -> 210 bytes .../java/seng202/group9/Controller/App.java | 14 +-- .../group9/GUI/AirlineRDController.java | 48 +++++----- .../group9/GUI/AirlineSummaryController.java | 54 ++---------- .../group9/GUI/AirportRDController.java | 13 +-- .../group9/GUI/AirportSummaryController.java | 67 ++++---------- .../java/seng202/group9/GUI/Controller.java | 69 +++++++++++++++ .../group9/GUI/FlightRawDataController.java | 19 ++-- .../group9/GUI/FlightSummaryController.java | 82 ++++-------------- .../seng202/group9/GUI/MenuController.java | 78 +++-------------- .../seng202/group9/GUI/RouteRDController.java | 43 ++++----- .../group9/GUI/RouteSummaryController.java | 52 ++--------- 12 files changed, 190 insertions(+), 349 deletions(-) create mode 100644 src/main/java/seng202/group9/GUI/Controller.java diff --git a/res/session.ser b/res/session.ser index 2fd690973cadd5628d444add02d152b101c21e85..dde3d2cbf9fca64a035b047e8617c7de63c2998f 100644 GIT binary patch delta 19 acmcb_c!_bsF&-aJKiBx+P+woiphy5oc?P}! delta 19 acmcb_c!_bsF`fYbppf|BP+woiphy5png-hd diff --git a/src/main/java/seng202/group9/Controller/App.java b/src/main/java/seng202/group9/Controller/App.java index be6b13a..a2a547b 100644 --- a/src/main/java/seng202/group9/Controller/App.java +++ b/src/main/java/seng202/group9/Controller/App.java @@ -116,14 +116,18 @@ public class App extends Application FileInputStream fileIn = new FileInputStream("res/session.ser"); ObjectInputStream objectIn = new ObjectInputStream(fileIn); session = (Session) objectIn.readObject(); + Controller controller = (Controller) replaceSceneContent(session.getSceneDisplayed()); + controller.setApp(this); + controller.load(); + controller.loadOnce();/* if (session.getSceneDisplayed() == SceneCode.AIRLINE_RAW_DATA){ - AirlineRDController controller = (AirlineRDController) replaceSceneContent(session.getSceneDisplayed()); + Controller controller = (Controller) replaceSceneContent(session.getSceneDisplayed()); controller.setApp(this); - controller.loadTables(); + controller.load(); }else if (session.getSceneDisplayed() == SceneCode.AIRLINE_SUMMARY){ - AirlineSummaryController controller = (AirlineSummaryController) replaceSceneContent(session.getSceneDisplayed()); + Controller controller = (Controller) replaceSceneContent(session.getSceneDisplayed()); controller.setApp(this); - controller.loadTables(); + controller.load(); }else if (session.getSceneDisplayed() == SceneCode.AIRPORT_RAW_DATA){ AirportRDController controller = (AirportRDController) replaceSceneContent(session.getSceneDisplayed()); controller.setApp(this); @@ -148,7 +152,7 @@ public class App extends Application FlightSummaryController controller = (FlightSummaryController) replaceSceneContent(session.getSceneDisplayed()); controller.setApp(this); controller.flightPathListView(); - } + }*/ objectIn.close(); fileIn.close(); }catch(IOException e){ diff --git a/src/main/java/seng202/group9/GUI/AirlineRDController.java b/src/main/java/seng202/group9/GUI/AirlineRDController.java index 33fd35f..6357a10 100644 --- a/src/main/java/seng202/group9/GUI/AirlineRDController.java +++ b/src/main/java/seng202/group9/GUI/AirlineRDController.java @@ -3,16 +3,20 @@ 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 MenuController { +public class AirlineRDController extends Controller { @FXML private TableView tableView; @@ -48,32 +52,8 @@ public class AirlineRDController extends MenuController { //private TextField airlActiveBox; private ComboBox airlActiveCBox; - - App parent; - - public void setApp(App parent){ - this.parent = parent; - } - private Dataset theDataSet = null; - public void loadTables() { - airlIDcol.setCellValueFactory(new PropertyValueFactory("ID")); - airlNamecol.setCellValueFactory(new PropertyValueFactory("Name")); - airlAliascol.setCellValueFactory(new PropertyValueFactory("ICAO")); - //Need to check IATA and ICAO - airlIATAcol.setCellValueFactory(new PropertyValueFactory("Alias")); - airlICAOcol.setCellValueFactory(new PropertyValueFactory("IATA")); - airlCallsigncol.setCellValueFactory(new PropertyValueFactory("CallSign")); - airlCountrycol.setCellValueFactory(new PropertyValueFactory("CountryName")); - airlActivecol.setCellValueFactory(new PropertyValueFactory("Active")); - - theDataSet = this.parent.getCurrentDataset(); - tableView.setItems(FXCollections.observableArrayList(theDataSet.getAirlines())); - //ObservableList activeOptions= FXCollections.observableArrayList("Y", "N"); - airlActiveCBox.getItems().addAll("Y", "N"); - } - //Dummy function to test the add button. //Will edit when ID is added automatically. public void addAirlineSingle() { @@ -102,4 +82,22 @@ public class AirlineRDController extends MenuController { alert.showAndWait(); } } + + public void load() { + airlIDcol.setCellValueFactory(new PropertyValueFactory("ID")); + airlNamecol.setCellValueFactory(new PropertyValueFactory("Name")); + airlAliascol.setCellValueFactory(new PropertyValueFactory("ICAO")); + //Need to check IATA and ICAO + airlIATAcol.setCellValueFactory(new PropertyValueFactory("Alias")); + airlICAOcol.setCellValueFactory(new PropertyValueFactory("IATA")); + airlCallsigncol.setCellValueFactory(new PropertyValueFactory("CallSign")); + airlCountrycol.setCellValueFactory(new PropertyValueFactory("CountryName")); + airlActivecol.setCellValueFactory(new PropertyValueFactory("Active")); + + theDataSet = getParent().getCurrentDataset(); + tableView.setItems(FXCollections.observableArrayList(theDataSet.getAirlines())); + //ObservableList activeOptions= FXCollections.observableArrayList("Y", "N"); + airlActiveCBox.getItems().addAll("Y", "N"); + } + } diff --git a/src/main/java/seng202/group9/GUI/AirlineSummaryController.java b/src/main/java/seng202/group9/GUI/AirlineSummaryController.java index d22bce6..1ce7873 100644 --- a/src/main/java/seng202/group9/GUI/AirlineSummaryController.java +++ b/src/main/java/seng202/group9/GUI/AirlineSummaryController.java @@ -2,6 +2,7 @@ package seng202.group9.GUI; import javafx.collections.FXCollections; import javafx.fxml.FXML; +import javafx.scene.Scene; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.cell.PropertyValueFactory; @@ -13,7 +14,7 @@ import seng202.group9.Core.Airline; /** * Created by michael on 14/09/2016. */ -public class AirlineSummaryController extends MenuController{ +public class AirlineSummaryController extends Controller{ @FXML private TableView tableView; @FXML @@ -29,63 +30,26 @@ public class AirlineSummaryController extends MenuController{ private Dataset currentData = null; - App parent; - - public void setApp(App parent){ - this.parent = parent; - } - - public void loadTables() { + public void load() { columnName.setCellValueFactory(new PropertyValueFactory("Name")); columnAlias.setCellValueFactory(new PropertyValueFactory("Alias")); columnCountry.setCellValueFactory(new PropertyValueFactory("Country")); columnIATA.setCellValueFactory(new PropertyValueFactory("IATA")); columnActive.setCellValueFactory(new PropertyValueFactory("Active")); - currentData = this.parent.getCurrentDataset(); + currentData = getParent().getCurrentDataset(); tableView.setItems(FXCollections.observableArrayList(currentData.getAirlines())); } + public void airlineRawDataButton() { - try { - AirlineRDController rawDataController = (AirlineRDController) - parent.replaceSceneContent(SceneCode.AIRLINE_RAW_DATA); - rawDataController.setApp(parent); - rawDataController.loadTables(); - } - catch (Exception e) { - e.printStackTrace(); - } + replaceSceneContent(SceneCode.AIRLINE_RAW_DATA); } public void flightSummaryButton() { - try { - FlightSummaryController summaryController = (FlightSummaryController) - parent.replaceSceneContent(SceneCode.FLIGHT_SUMMARY); - summaryController.setApp(parent); - summaryController.flightPathListView(); - } - catch (Exception e) { - e.printStackTrace(); - } + replaceSceneContent(SceneCode.FLIGHT_SUMMARY); } public void airportSummaryButton() { - try { - AirportSummaryController summaryController = (AirportSummaryController) - parent.replaceSceneContent(SceneCode.AIRPORT_SUMMARY); - summaryController.setApp(parent); - summaryController.loadTables(); - } - catch (Exception e) { - e.printStackTrace(); - } + replaceSceneContent(SceneCode.AIRPORT_SUMMARY); } public void routeSummaryButton() { - try { - RouteSummaryController summaryController = (RouteSummaryController) - parent.replaceSceneContent(SceneCode.ROUTE_SUMMARY); - summaryController.setApp(parent); - summaryController.loadTables(); - } - catch (Exception e) { - e.printStackTrace(); - } + replaceSceneContent(SceneCode.ROUTE_SUMMARY); } } diff --git a/src/main/java/seng202/group9/GUI/AirportRDController.java b/src/main/java/seng202/group9/GUI/AirportRDController.java index 34b57b0..208550c 100644 --- a/src/main/java/seng202/group9/GUI/AirportRDController.java +++ b/src/main/java/seng202/group9/GUI/AirportRDController.java @@ -22,7 +22,7 @@ import seng202.group9.Core.Country; /** * Created by Sunguin on 2016/09/13. */ -public class AirportRDController extends MenuController{ +public class AirportRDController extends Controller{ @FXML private TableView tableViewAirportRD; @@ -74,16 +74,9 @@ public class AirportRDController extends MenuController{ @FXML private TextField airpTzBox; - private Dataset theDataSet = null; - App parent; - - public void setApp(App parent){ - this.parent = parent; - } - - public void loadTables() { + public void load() { airpIDcol.setCellValueFactory(new PropertyValueFactory("ID")); airpNamecol.setCellValueFactory(new PropertyValueFactory("Name")); airpCitycol.setCellValueFactory(new PropertyValueFactory("CityName")); @@ -114,7 +107,7 @@ public class AirportRDController extends MenuController{ // return timeZoneCell; // } // }); - theDataSet = this.parent.getCurrentDataset(); + theDataSet = getParent().getCurrentDataset(); tableViewAirportRD.setItems(FXCollections.observableArrayList(theDataSet.getAirports())); airpDSTCBox.getItems().addAll("E", "A", "S", "O", "Z", "N", "U"); diff --git a/src/main/java/seng202/group9/GUI/AirportSummaryController.java b/src/main/java/seng202/group9/GUI/AirportSummaryController.java index 7e98673..8906de7 100644 --- a/src/main/java/seng202/group9/GUI/AirportSummaryController.java +++ b/src/main/java/seng202/group9/GUI/AirportSummaryController.java @@ -13,7 +13,7 @@ import seng202.group9.Core.Airport; /** * Created by michael on 14/09/2016. */ -public class AirportSummaryController extends MenuController{ +public class AirportSummaryController extends Controller{ @FXML private TableView tableView; @FXML @@ -29,64 +29,27 @@ public class AirportSummaryController extends MenuController{ private Dataset currentData = null; - App parent; - - public void setApp(App parent){ - this.parent = parent; + public void airportRawDataButton() { + replaceSceneContent(SceneCode.AIRLINE_RAW_DATA); + } + public void flightSummaryButton() { + replaceSceneContent(SceneCode.FLIGHT_SUMMARY); + } + public void routeSummaryButton() { + replaceSceneContent(SceneCode.ROUTE_SUMMARY); + } + public void airlineSummaryButton() { + replaceSceneContent(SceneCode.AIRLINE_SUMMARY); } - public void loadTables() { - currentData = this.parent.getCurrentDataset(); + public void load() { + currentData = getParent().getCurrentDataset(); columnName.setCellValueFactory(new PropertyValueFactory("Name")); columnCity.setCellValueFactory(new PropertyValueFactory("City")); columnCountry.setCellValueFactory(new PropertyValueFactory("Country")); columnIATA.setCellValueFactory(new PropertyValueFactory("IATA_FFA")); columnAltitude.setCellValueFactory(new PropertyValueFactory("Altitude")); - currentData = this.parent.getCurrentDataset(); + currentData = getParent().getCurrentDataset(); tableView.setItems(FXCollections.observableArrayList(currentData.getAirports())); } - public void airportRawDataButton() { - try { - AirportRDController rawDataController = (AirportRDController) - parent.replaceSceneContent(SceneCode.AIRPORT_RAW_DATA); - rawDataController.setApp(parent); - rawDataController.loadTables(); - } - catch (Exception e) { - e.printStackTrace(); - } - } - public void flightSummaryButton() { - try { - FlightSummaryController summaryController = (FlightSummaryController) - parent.replaceSceneContent(SceneCode.FLIGHT_SUMMARY); - summaryController.setApp(parent); - summaryController.flightPathListView(); - } - catch (Exception e) { - e.printStackTrace(); - } - } - public void routeSummaryButton() { - try { - RouteSummaryController summaryController = (RouteSummaryController) - parent.replaceSceneContent(SceneCode.ROUTE_SUMMARY); - summaryController.setApp(parent); - summaryController.loadTables(); - } - catch (Exception e) { - e.printStackTrace(); - } - } - public void airlineSummaryButton() { - try { - AirlineSummaryController summaryController = (AirlineSummaryController) - parent.replaceSceneContent(SceneCode.AIRLINE_SUMMARY); - summaryController.setApp(parent); - summaryController.loadTables(); - } - catch (Exception e) { - e.printStackTrace(); - } - } } \ No newline at end of file diff --git a/src/main/java/seng202/group9/GUI/Controller.java b/src/main/java/seng202/group9/GUI/Controller.java new file mode 100644 index 0000000..2ba31ce --- /dev/null +++ b/src/main/java/seng202/group9/GUI/Controller.java @@ -0,0 +1,69 @@ +package seng202.group9.GUI; + +import javafx.fxml.Initializable; +import seng202.group9.Controller.App; +import seng202.group9.Controller.SceneCode; + +import java.net.URL; +import java.util.ResourceBundle; + +/** + * Created by Gondr on 16/09/2016. + */ +public abstract class Controller implements Initializable{ + private App parent; + + /** + * set Parent app + * @param parent + */ + public void setApp(App parent){ + this.parent = parent; + } + + /** + * get parent App + * @return + */ + public App getParent(){ + return parent; + } + + /** + * functions to load + */ + public abstract void load(); + + /** + * Replaces content and does normal loading + * @param scene + */ + public void replaceSceneContent(SceneCode scene){ + try { + Controller controller = (Controller) + parent.replaceSceneContent(scene); + controller.setApp(parent); + controller.load(); + controller.loadOnce(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Functions here will only load once and after the load function. + */ + public void loadOnce(){ + + } + + /** + * Initialize statement before anything loads. + * @param location + * @param resources + */ + public void initialize(URL location, ResourceBundle resources) { + + } + +} diff --git a/src/main/java/seng202/group9/GUI/FlightRawDataController.java b/src/main/java/seng202/group9/GUI/FlightRawDataController.java index d69260c..21d0c83 100644 --- a/src/main/java/seng202/group9/GUI/FlightRawDataController.java +++ b/src/main/java/seng202/group9/GUI/FlightRawDataController.java @@ -24,15 +24,10 @@ import java.util.ResourceBundle; * Controller for the Flights Raw Data Scene. * Created by Liam Beckett on 13/09/2016. */ -public class FlightRawDataController implements Initializable { +public class FlightRawDataController extends Controller { private Dataset theDataSet = null; - App parent; - public void setApp(App parent){ - this.parent = parent; - } - @FXML private TableView flightTableView; @FXML @@ -99,7 +94,7 @@ public class FlightRawDataController implements Initializable { /** * Function used to load the table for the Flight points initially from the MenuController */ - public void loadTables() { + public void load() { flightIdCol.setCellValueFactory(new PropertyValueFactory("ID")); flightNameCol.setCellValueFactory(new PropertyValueFactory("Name")); flightTypeCol.setCellValueFactory(new PropertyValueFactory("Type")); @@ -111,7 +106,7 @@ public class FlightRawDataController implements Initializable { flightLegDisCol.setCellValueFactory(new PropertyValueFactory("Leg_Dist")); flightTotDisCol.setCellValueFactory(new PropertyValueFactory("Tot_Dist")); - theDataSet = this.parent.getCurrentDataset(); + theDataSet = getParent().getCurrentDataset(); ArrayList flightPaths; flightPaths = theDataSet.getFlightPaths(); @@ -119,9 +114,9 @@ public class FlightRawDataController implements Initializable { ArrayList flightPoints = flightPaths.get(0).getFlight(); flightTableView.setItems(FXCollections.observableArrayList(flightPoints)); } - - public void initialize(URL arg0, ResourceBundle arg1) { - // TODO Auto-generated method stub - + @Override + public void loadOnce(){ + flightPathListView(); } + } \ No newline at end of file diff --git a/src/main/java/seng202/group9/GUI/FlightSummaryController.java b/src/main/java/seng202/group9/GUI/FlightSummaryController.java index cbccbca..601b15c 100644 --- a/src/main/java/seng202/group9/GUI/FlightSummaryController.java +++ b/src/main/java/seng202/group9/GUI/FlightSummaryController.java @@ -23,15 +23,10 @@ import java.util.ResourceBundle; * Controller for the Flights Summary Scene. * Created by Liam Beckett on 13/09/2016. */ -public class FlightSummaryController implements Initializable { +public class FlightSummaryController extends Controller { private Dataset theDataSet = null; - App parent; - public void setApp(App parent){ - this.parent = parent; - } - @FXML private Button flightRawData; @@ -40,11 +35,25 @@ public class FlightSummaryController implements Initializable { final ObservableList flightList = FXCollections.observableArrayList(); /** - * Loads the Flight paths into the List View and is called from the MenuController. + * Changes to the Flight Raw Data Scene when the Raw Data Button is clicked */ - public void flightPathListView() { + public void handleRawDataButton() { + replaceSceneContent(SceneCode.FLIGHT_RAW_DATA); + } + + public void airportSummaryButton() { + replaceSceneContent(SceneCode.AIRPORT_SUMMARY); + } + public void routeSummaryButton() { + replaceSceneContent(SceneCode.ROUTE_SUMMARY); + } + public void airlineSummaryButton() { + replaceSceneContent(SceneCode.AIRLINE_SUMMARY); + } + + public void load() { try { - theDataSet = this.parent.getCurrentDataset(); + theDataSet = getParent().getCurrentDataset(); ArrayList flightPaths = new ArrayList(); flightPaths = theDataSet.getFlightPaths(); for(int i = 0; i tableViewRouteRD; @@ -47,32 +47,8 @@ public class RouteRDController extends MenuController { @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("AirlineName")); - 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())); - - rCodeshareCBox.getItems().addAll("Y", ""); - } - public void addRouteSingle() { try { theDataSet.addRoute( @@ -98,4 +74,21 @@ public class RouteRDController extends MenuController { alert.showAndWait(); } } + + public void load() { + rAirlineCol.setCellValueFactory(new PropertyValueFactory("AirlineName")); + 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 = getParent().getCurrentDataset(); + tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes())); + + rCodeshareCBox.getItems().addAll("Y", ""); + } } diff --git a/src/main/java/seng202/group9/GUI/RouteSummaryController.java b/src/main/java/seng202/group9/GUI/RouteSummaryController.java index 8c762ca..42ff60b 100644 --- a/src/main/java/seng202/group9/GUI/RouteSummaryController.java +++ b/src/main/java/seng202/group9/GUI/RouteSummaryController.java @@ -13,7 +13,7 @@ import seng202.group9.Core.Route; /** * Created by michael on 14/09/2016. */ -public class RouteSummaryController extends MenuController{ +public class RouteSummaryController extends Controller{ @FXML private TableView tableView; @FXML @@ -29,64 +29,26 @@ public class RouteSummaryController extends MenuController{ private Dataset currentData = null; - App parent; - - public void setApp(App parent){ - this.parent = parent; - } - - public void loadTables() { + public void load() { columnAirline.setCellValueFactory(new PropertyValueFactory("Airline")); columnDepart.setCellValueFactory(new PropertyValueFactory("DepartureAirport")); columnArrive.setCellValueFactory(new PropertyValueFactory("ArrivalAirport")); columnStops.setCellValueFactory(new PropertyValueFactory("Stops")); columnEquipment.setCellValueFactory(new PropertyValueFactory("Equipment")); - currentData = this.parent.getCurrentDataset(); + currentData = getParent().getCurrentDataset(); tableView.setItems(FXCollections.observableArrayList(currentData.getRoutes())); } public void routeRawDataButton() { - try { - RouteRDController rawDataController = (RouteRDController) - parent.replaceSceneContent(SceneCode.ROUTE_RAW_DATA); - rawDataController.setApp(parent); - rawDataController.loadTables(); - } - catch (Exception e) { - e.printStackTrace(); - } + replaceSceneContent(SceneCode.ROUTE_RAW_DATA); } public void flightSummaryButton() { - try { - FlightSummaryController summaryController = (FlightSummaryController) - parent.replaceSceneContent(SceneCode.FLIGHT_SUMMARY); - summaryController.setApp(parent); - summaryController.flightPathListView(); - } - catch (Exception e) { - e.printStackTrace(); - } + replaceSceneContent(SceneCode.FLIGHT_SUMMARY); } public void airportSummaryButton() { - try { - AirportSummaryController summaryController = (AirportSummaryController) - parent.replaceSceneContent(SceneCode.AIRPORT_SUMMARY); - summaryController.setApp(parent); - summaryController.loadTables(); - } - catch (Exception e) { - e.printStackTrace(); - } + replaceSceneContent(SceneCode.AIRPORT_SUMMARY); } public void airlineSummaryButton() { - try { - AirlineSummaryController summaryController = (AirlineSummaryController) - parent.replaceSceneContent(SceneCode.AIRLINE_SUMMARY); - summaryController.setApp(parent); - summaryController.loadTables(); - } - catch (Exception e) { - e.printStackTrace(); - } + replaceSceneContent(SceneCode.AIRLINE_SUMMARY); } } \ No newline at end of file