From 021a03c6b49faa6d7fcea5b33cf8ada80e6a001a Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Sat, 1 Oct 2016 23:10:36 +1300 Subject: [PATCH] Added if dataset open/add incase dataset is null to all pages that require a non null dataset to exist. --- .../java/seng202/group9/Controller/App.java | 46 ------------------- .../group9/GUI/AirlineRDController.java | 3 ++ .../group9/GUI/AirlineSummaryController.java | 3 ++ .../seng202/group9/GUI/AirportAnalyser.java | 3 ++ .../group9/GUI/AirportEditController.java | 3 ++ .../group9/GUI/AirportRDController.java | 43 +++++++++-------- .../group9/GUI/AirportSummaryController.java | 3 ++ .../java/seng202/group9/GUI/Controller.java | 18 ++++++++ .../group9/GUI/DistCalcController.java | 3 ++ .../group9/GUI/FlightAddController.java | 3 ++ .../group9/GUI/FlightEditorController.java | 3 ++ .../group9/GUI/FlightRDController.java | 35 +++++++------- .../group9/GUI/FlightSummaryController.java | 3 ++ .../group9/GUI/RouteAddController.java | 3 ++ .../seng202/group9/GUI/RouteAnalyser.java | 3 ++ .../group9/GUI/RouteEditController.java | 3 ++ .../group9/GUI/RouteFilterController.java | 3 ++ .../seng202/group9/GUI/RouteRDController.java | 3 ++ .../group9/GUI/RouteSummaryController.java | 3 ++ 19 files changed, 106 insertions(+), 81 deletions(-) diff --git a/src/main/java/seng202/group9/Controller/App.java b/src/main/java/seng202/group9/Controller/App.java index f7f39b2..013b749 100644 --- a/src/main/java/seng202/group9/Controller/App.java +++ b/src/main/java/seng202/group9/Controller/App.java @@ -90,20 +90,6 @@ public class App extends Application } catch (Exception e){ e.printStackTrace(); } - //testing out dataset - try { - if (session.getCurrentDataset() != null) { - currentDataset = new Dataset(session.getCurrentDataset(), Dataset.getExisting); - }else{ - createPopUpStage(SceneCode.DATASET_CONTROLLER, 600, 400); - } - }catch (DataException e){ - createPopUpStage(SceneCode.DATASET_CONTROLLER, 600, 400); - }catch (NullPointerException e){ - createPopUpStage(SceneCode.DATASET_CONTROLLER, 600, 400); - }catch (Exception e){ - createPopUpStage(SceneCode.DATASET_CONTROLLER, 600, 400); - } //after all loading then load the previous session if (session.getSceneDisplayed() != null) { menuController.replaceSceneContent(session.getSceneDisplayed()); @@ -255,36 +241,4 @@ public class App extends Application } } - public Stage createPopUpStage(SceneCode scene, int width, int height) { - FXMLLoader loader = new FXMLLoader(); - InputStream in = getClass().getClassLoader().getResourceAsStream(scene.getFilePath()); - Parent page = null; - try { - page = loader.load(in); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - in.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - //set contorller and call default calls - Controller controller = (Controller) loader.getController(); - controller.setApp(this); - controller.load(); - controller.loadOnce(); - //create a new stage to popup - Stage popupStage = new Stage(); - popupStage.initModality(Modality.WINDOW_MODAL); - //inner layout constraints - VBox container = new VBox(); - container.getChildren().add(page); - Scene popupScene = new Scene(container, width, height); - //show - popupStage.setScene(popupScene); - popupStage.showAndWait(); - return popupStage; - } } diff --git a/src/main/java/seng202/group9/GUI/AirlineRDController.java b/src/main/java/seng202/group9/GUI/AirlineRDController.java index 52a1df4..8c161c3 100644 --- a/src/main/java/seng202/group9/GUI/AirlineRDController.java +++ b/src/main/java/seng202/group9/GUI/AirlineRDController.java @@ -49,6 +49,9 @@ public class AirlineRDController extends Controller { * Also sets up the dropdown menu options. */ public void load() { + if (!checkDataset()){ + return; + } //Sets up the table columns to be ready for use for Airline data airlIDCol.setCellValueFactory(new PropertyValueFactory("ID")); airlNameCol.setCellValueFactory(new PropertyValueFactory("Name")); diff --git a/src/main/java/seng202/group9/GUI/AirlineSummaryController.java b/src/main/java/seng202/group9/GUI/AirlineSummaryController.java index 6e62b78..d720dbf 100644 --- a/src/main/java/seng202/group9/GUI/AirlineSummaryController.java +++ b/src/main/java/seng202/group9/GUI/AirlineSummaryController.java @@ -48,6 +48,9 @@ public class AirlineSummaryController extends Controller{ * Loads initial state of the scene. */ public void load() { + if (!checkDataset()){ + return; + } //Fills the table. columnName.setCellValueFactory(new PropertyValueFactory("Name")); columnAlias.setCellValueFactory(new PropertyValueFactory("Alias")); diff --git a/src/main/java/seng202/group9/GUI/AirportAnalyser.java b/src/main/java/seng202/group9/GUI/AirportAnalyser.java index 47f7116..71ccee8 100644 --- a/src/main/java/seng202/group9/GUI/AirportAnalyser.java +++ b/src/main/java/seng202/group9/GUI/AirportAnalyser.java @@ -71,6 +71,9 @@ public class AirportAnalyser extends Controller { * Takes the current dataset then loads the data to the graph using build graph. */ public void load() { + if (!checkDataset()){ + return; + } currentdata = getParent().getCurrentDataset(); build_graph(); } diff --git a/src/main/java/seng202/group9/GUI/AirportEditController.java b/src/main/java/seng202/group9/GUI/AirportEditController.java index 98a02ff..63d507e 100644 --- a/src/main/java/seng202/group9/GUI/AirportEditController.java +++ b/src/main/java/seng202/group9/GUI/AirportEditController.java @@ -72,6 +72,9 @@ public class AirportEditController extends Controller { } public void load() { + if (!checkDataset()){ + return; + } theDataSet = getParent().getCurrentDataset(); currentSession = getParent().getSession(); diff --git a/src/main/java/seng202/group9/GUI/AirportRDController.java b/src/main/java/seng202/group9/GUI/AirportRDController.java index 3661e15..8e22508 100644 --- a/src/main/java/seng202/group9/GUI/AirportRDController.java +++ b/src/main/java/seng202/group9/GUI/AirportRDController.java @@ -59,26 +59,31 @@ public class AirportRDController extends Controller{ * Also sets up the dropdown menu options. */ public void load() { - //Sets up the table columns to be ready for use for Airport data - airpIDCol.setCellValueFactory(new PropertyValueFactory("ID")); - airpNameCol.setCellValueFactory(new PropertyValueFactory("Name")); - airpCityCol.setCellValueFactory(new PropertyValueFactory("CityName")); - airpCountryCol.setCellValueFactory(new PropertyValueFactory("CountryName")); - airpIATAFFACol.setCellValueFactory(new PropertyValueFactory("IATA_FFA")); - airpICAOCol.setCellValueFactory(new PropertyValueFactory("ICAO")); - airpLatitudeCol.setCellValueFactory(new PropertyValueFactory("Latitude")); - airpLongitudeCol.setCellValueFactory(new PropertyValueFactory("Longitude")); - airpAltitudeCol.setCellValueFactory(new PropertyValueFactory ("Altitude")); - airpTimezoneCol.setCellValueFactory(new PropertyValueFactory("Timezone")); - airpDSTCol.setCellValueFactory(new PropertyValueFactory("DST")); - airpTzCol.setCellValueFactory(new PropertyValueFactory("Tz")); - - //Assigning the Dataset to the current Dataset's airports and displaying it in a table + if (!checkDataset()){ + return; + } theDataSet = getParent().getCurrentDataset(); - currentSession = getParent().getSession(); - - tableViewAirportRD.setItems(observableArrayList(theDataSet.getAirports())); - tableViewAirportRD.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); + if (theDataSet != null) { + //Sets up the table columns to be ready for use for Airport data + airpIDCol.setCellValueFactory(new PropertyValueFactory("ID")); + airpNameCol.setCellValueFactory(new PropertyValueFactory("Name")); + airpCityCol.setCellValueFactory(new PropertyValueFactory("CityName")); + airpCountryCol.setCellValueFactory(new PropertyValueFactory("CountryName")); + airpIATAFFACol.setCellValueFactory(new PropertyValueFactory("IATA_FFA")); + airpICAOCol.setCellValueFactory(new PropertyValueFactory("ICAO")); + airpLatitudeCol.setCellValueFactory(new PropertyValueFactory("Latitude")); + airpLongitudeCol.setCellValueFactory(new PropertyValueFactory("Longitude")); + airpAltitudeCol.setCellValueFactory(new PropertyValueFactory("Altitude")); + airpTimezoneCol.setCellValueFactory(new PropertyValueFactory("Timezone")); + airpDSTCol.setCellValueFactory(new PropertyValueFactory("DST")); + airpTzCol.setCellValueFactory(new PropertyValueFactory("Tz")); + + //Assigning the Dataset to the current Dataset's airports and displaying it in a table + currentSession = getParent().getSession(); + + tableViewAirportRD.setItems(observableArrayList(theDataSet.getAirports())); + tableViewAirportRD.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); + } } public void openAdd() { diff --git a/src/main/java/seng202/group9/GUI/AirportSummaryController.java b/src/main/java/seng202/group9/GUI/AirportSummaryController.java index 8ec83ca..1b2f0dd 100644 --- a/src/main/java/seng202/group9/GUI/AirportSummaryController.java +++ b/src/main/java/seng202/group9/GUI/AirportSummaryController.java @@ -72,6 +72,9 @@ public class AirportSummaryController extends Controller{ * Loads initial state of the scene. */ public void load() { + if (!checkDataset()){ + return; + } currentData = getParent().getCurrentDataset(); columnName.setCellValueFactory(new PropertyValueFactory("Name")); columnCity.setCellValueFactory(new PropertyValueFactory("CityName")); diff --git a/src/main/java/seng202/group9/GUI/Controller.java b/src/main/java/seng202/group9/GUI/Controller.java index 0c3220e..e6145db 100644 --- a/src/main/java/seng202/group9/GUI/Controller.java +++ b/src/main/java/seng202/group9/GUI/Controller.java @@ -4,6 +4,7 @@ import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.Scene; +import javafx.scene.control.Alert; import javafx.scene.layout.VBox; import javafx.stage.Modality; import javafx.stage.Stage; @@ -58,6 +59,23 @@ public abstract class Controller implements Initializable{ } } + public boolean checkDataset(){ + //if the dataset is null then we want to change to the initial and give a warning. + //Also then let them selecthe data set + if (getParent().getCurrentDataset() == null) { + replaceSceneContent(SceneCode.INITIAL); + Alert alert = new Alert(Alert.AlertType.WARNING); + alert.setTitle("Missing Dataset"); + alert.setHeaderText("No Dataset is currently selected."); + alert.setContentText("Please Create a Dataset to store your Information in."); + alert.showAndWait(); + createPopUpStage(SceneCode.DATASET_CONTROLLER, 600, 400); + return false; + }else{ + return true; + } + } + /** * Creates a popup window with a specific fxml scene * @param scene diff --git a/src/main/java/seng202/group9/GUI/DistCalcController.java b/src/main/java/seng202/group9/GUI/DistCalcController.java index c54f1bc..9c878d4 100644 --- a/src/main/java/seng202/group9/GUI/DistCalcController.java +++ b/src/main/java/seng202/group9/GUI/DistCalcController.java @@ -67,6 +67,9 @@ public class DistCalcController extends Controller { * Sets the initial state of the scene. */ public void load(){ + if (!checkDataset()){ + return; + } currentData = getParent().getCurrentDataset(); answerBox.textProperty().bind(bound); fill_boxes(); diff --git a/src/main/java/seng202/group9/GUI/FlightAddController.java b/src/main/java/seng202/group9/GUI/FlightAddController.java index cec96de..b1f845c 100644 --- a/src/main/java/seng202/group9/GUI/FlightAddController.java +++ b/src/main/java/seng202/group9/GUI/FlightAddController.java @@ -32,6 +32,9 @@ public class FlightAddController extends Controller { private Session currentSession = null; public void load() { + if (!checkDataset()){ + return; + } theDataSet = getParent().getCurrentDataset(); currentSession = getParent().getSession(); } diff --git a/src/main/java/seng202/group9/GUI/FlightEditorController.java b/src/main/java/seng202/group9/GUI/FlightEditorController.java index 6282cd5..b6e0d58 100644 --- a/src/main/java/seng202/group9/GUI/FlightEditorController.java +++ b/src/main/java/seng202/group9/GUI/FlightEditorController.java @@ -81,6 +81,9 @@ public class FlightEditorController extends Controller{ * Loader which is used to load the selected information into the text fields for editing. */ public void load() { + if (!checkDataset()){ + return; + } theDataSet = getParent().getCurrentDataset(); Session session = getParent().getSession(); diff --git a/src/main/java/seng202/group9/GUI/FlightRDController.java b/src/main/java/seng202/group9/GUI/FlightRDController.java index d94b8b9..e85c131 100644 --- a/src/main/java/seng202/group9/GUI/FlightRDController.java +++ b/src/main/java/seng202/group9/GUI/FlightRDController.java @@ -102,6 +102,9 @@ public class FlightRDController extends Controller { * Used to load the table for the Flight points initially from the MenuController */ public void load() { + if (!checkDataset()){ + return; + } theDataSet = getParent().getCurrentDataset(); if (theDataSet != null) { try { @@ -127,25 +130,25 @@ public class FlightRDController extends Controller { }catch(IndexOutOfBoundsException e){ System.out.println("There is no Paths to show"); } - } - flightPathListView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener(){ - public void changed(ObservableValue observable, String oldValue, String newValue) { - String flightPathDisplayNameClicked = flightPathListView.getSelectionModel().getSelectedItem(); - if (flightPathDisplayNameClicked!=null) { - String[] segments = flightPathDisplayNameClicked.split("_"); - String pathIdClicked = segments[0]; + flightPathListView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener(){ + public void changed(ObservableValue observable, String oldValue, String newValue) { + String flightPathDisplayNameClicked = flightPathListView.getSelectionModel().getSelectedItem(); + if (flightPathDisplayNameClicked!=null) { + String[] segments = flightPathDisplayNameClicked.split("_"); + String pathIdClicked = segments[0]; - currentPathIndex = theDataSet.getFlightPaths().indexOf(theDataSet.getFlightPathDictionary() - .get(Integer.parseInt(pathIdClicked))); - currentPathId = Integer.parseInt(pathIdClicked); + currentPathIndex = theDataSet.getFlightPaths().indexOf(theDataSet.getFlightPathDictionary() + .get(Integer.parseInt(pathIdClicked))); + currentPathId = Integer.parseInt(pathIdClicked); - ArrayList flightPaths; - flightPaths = theDataSet.getFlightPaths(); - ArrayList flightPoints = flightPaths.get(currentPathIndex).getFlight(); - flightTableView.setItems(FXCollections.observableArrayList(flightPoints)); + ArrayList flightPaths; + flightPaths = theDataSet.getFlightPaths(); + ArrayList flightPoints = flightPaths.get(currentPathIndex).getFlight(); + flightTableView.setItems(FXCollections.observableArrayList(flightPoints)); + } } - } - }); + }); + } } /** diff --git a/src/main/java/seng202/group9/GUI/FlightSummaryController.java b/src/main/java/seng202/group9/GUI/FlightSummaryController.java index 2843233..a08b935 100644 --- a/src/main/java/seng202/group9/GUI/FlightSummaryController.java +++ b/src/main/java/seng202/group9/GUI/FlightSummaryController.java @@ -175,6 +175,9 @@ public class FlightSummaryController extends Controller { * Used to load the page from the MenuController. */ public void load() { + if (!checkDataset()){ + return; + } theDataSet = getParent().getCurrentDataset(); if (theDataSet != null) { try { diff --git a/src/main/java/seng202/group9/GUI/RouteAddController.java b/src/main/java/seng202/group9/GUI/RouteAddController.java index 7a9e1ff..8af7fa1 100644 --- a/src/main/java/seng202/group9/GUI/RouteAddController.java +++ b/src/main/java/seng202/group9/GUI/RouteAddController.java @@ -74,6 +74,9 @@ public class RouteAddController extends Controller { } public void load() { + if (!checkDataset()){ + return; + } theDataSet = getParent().getCurrentDataset(); } } diff --git a/src/main/java/seng202/group9/GUI/RouteAnalyser.java b/src/main/java/seng202/group9/GUI/RouteAnalyser.java index 241768b..f2f7485 100644 --- a/src/main/java/seng202/group9/GUI/RouteAnalyser.java +++ b/src/main/java/seng202/group9/GUI/RouteAnalyser.java @@ -85,6 +85,9 @@ public class RouteAnalyser extends Controller { * Takes the current dataset then loads the data to the graph using build graph. */ public void load() { + if (!checkDataset()){ + return; + } currentdata = getParent().getCurrentDataset(); build_graph(); } diff --git a/src/main/java/seng202/group9/GUI/RouteEditController.java b/src/main/java/seng202/group9/GUI/RouteEditController.java index 2aa264b..97c2002 100644 --- a/src/main/java/seng202/group9/GUI/RouteEditController.java +++ b/src/main/java/seng202/group9/GUI/RouteEditController.java @@ -58,6 +58,9 @@ public class RouteEditController extends Controller { } public void load() { + if (!checkDataset()){ + return; + } theDataSet = getParent().getCurrentDataset(); currentSession = getParent().getSession(); diff --git a/src/main/java/seng202/group9/GUI/RouteFilterController.java b/src/main/java/seng202/group9/GUI/RouteFilterController.java index a1afa28..8eb9bdb 100644 --- a/src/main/java/seng202/group9/GUI/RouteFilterController.java +++ b/src/main/java/seng202/group9/GUI/RouteFilterController.java @@ -86,6 +86,9 @@ public class RouteFilterController extends Controller { } public void load() { + if (!checkDataset()){ + return; + } theDataSet = getParent().getCurrentDataset(); currentSession = getParent().getSession(); } diff --git a/src/main/java/seng202/group9/GUI/RouteRDController.java b/src/main/java/seng202/group9/GUI/RouteRDController.java index c05e784..374b7cd 100644 --- a/src/main/java/seng202/group9/GUI/RouteRDController.java +++ b/src/main/java/seng202/group9/GUI/RouteRDController.java @@ -52,6 +52,9 @@ public class RouteRDController extends Controller { * Also sets up the dropdown menu options. */ public void load() { + if (!checkDataset()){ + return; + } //Sets up the table columns to be ready for use for Route data rAirlineCol.setCellValueFactory(new PropertyValueFactory("AirlineName")); rAirlineIDCol.setCellValueFactory(new PropertyValueFactory("AirlineID")); diff --git a/src/main/java/seng202/group9/GUI/RouteSummaryController.java b/src/main/java/seng202/group9/GUI/RouteSummaryController.java index e84e955..60d8bc2 100644 --- a/src/main/java/seng202/group9/GUI/RouteSummaryController.java +++ b/src/main/java/seng202/group9/GUI/RouteSummaryController.java @@ -43,6 +43,9 @@ public class RouteSummaryController extends Controller{ * Loads initial state of the scene. */ public void load() { + if (!checkDataset()){ + return; + } columnAirline.setCellValueFactory(new PropertyValueFactory("AirlineName")); columnDepart.setCellValueFactory(new PropertyValueFactory("DepartureAirport")); columnArrive.setCellValueFactory(new PropertyValueFactory("ArrivalAirport"));