diff --git a/res/userdb.db b/res/userdb.db index f98b130..4f6d70c 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 1c91bb8..71560f1 100644 --- a/src/main/java/seng202/group9/Controller/Dataset.java +++ b/src/main/java/seng202/group9/Controller/Dataset.java @@ -467,7 +467,6 @@ public class Dataset { while (IDResult.next()) { nextID = Integer.parseInt(IDResult.getString("seq")) + 1;//for some reason sqlite3 stores incremental values as a string... } - System.out.println(nextID); stmt.close(); stmt = c.createStatement(); String insertAirportQuery = "INSERT INTO `" + this.name + "_Airport` (`Name`, `City`, `Country`, `IATA/FFA`," + @@ -1611,7 +1610,6 @@ public class Dataset { stmt.close(); int index = flightPath.getFlightPoints().indexOf(flightPoint); - System.out.println(index); if (index == 0){ try { diff --git a/src/main/java/seng202/group9/Core/FlightPath.java b/src/main/java/seng202/group9/Core/FlightPath.java index 0f29d90..70539e4 100644 --- a/src/main/java/seng202/group9/Core/FlightPath.java +++ b/src/main/java/seng202/group9/Core/FlightPath.java @@ -28,7 +28,7 @@ public class FlightPath { } /** - * COnstructor for FlightPath from dataset add later the ID needs to be set from database. + * Constructor for FlightPath from dataset add later the ID needs to be set from database. * @param departureAirport * @param arrivalAirport */ diff --git a/src/main/java/seng202/group9/GUI/FlightRDController.java b/src/main/java/seng202/group9/GUI/FlightRDController.java index 7e82abe..74594a2 100644 --- a/src/main/java/seng202/group9/GUI/FlightRDController.java +++ b/src/main/java/seng202/group9/GUI/FlightRDController.java @@ -37,8 +37,6 @@ public class FlightRDController extends Controller { @FXML private TableColumn flightTypeCol; @FXML - private TableColumn flightViaCol; - @FXML private TableColumn flightAltitudeCol; @FXML private TableColumn flightLatCol; @@ -92,17 +90,19 @@ public class FlightRDController extends Controller { flightPathListView.setOnMouseClicked(new EventHandler() { public void handle(MouseEvent event) { String flightPathDisplayNameClicked = flightPathListView.getSelectionModel().getSelectedItem(); - String[] segments = flightPathDisplayNameClicked.split("_"); - String pathIdClicked = segments[0]; + 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)); + } } }); @@ -117,27 +117,28 @@ public class FlightRDController extends Controller { * Used to load the table for the Flight points initially from the MenuController */ public void load() { - theDataSet = getParent().getCurrentDataset(); - try { - currentPathId = theDataSet.getFlightPaths().get(0).getID(); //Sets the default to the 1st Path - } catch (DataException e) { - e.printStackTrace(); - } - flightIdCol.setCellValueFactory(new PropertyValueFactory("ID")); - flightNameCol.setCellValueFactory(new PropertyValueFactory("Name")); - flightTypeCol.setCellValueFactory(new PropertyValueFactory("Type")); - flightViaCol.setCellValueFactory(new PropertyValueFactory("Via")); - flightAltitudeCol.setCellValueFactory(new PropertyValueFactory("Altitude")); - flightLatCol.setCellValueFactory(new PropertyValueFactory("Latitude")); - flightLongCol.setCellValueFactory(new PropertyValueFactory("Longitude")); - flightHeadCol.setCellValueFactory(new PropertyValueFactory("Heading")); - flightLegDisCol.setCellValueFactory(new PropertyValueFactory("LegDistance")); - flightTotDisCol.setCellValueFactory(new PropertyValueFactory("totalDistance")); + if (theDataSet != null) { + theDataSet = getParent().getCurrentDataset(); + try { + currentPathId = theDataSet.getFlightPaths().get(0).getID(); //Sets the default to the 1st Path + } catch (DataException e) { + e.printStackTrace(); + } + flightIdCol.setCellValueFactory(new PropertyValueFactory("ID")); + flightNameCol.setCellValueFactory(new PropertyValueFactory("Name")); + flightTypeCol.setCellValueFactory(new PropertyValueFactory("Type")); + flightAltitudeCol.setCellValueFactory(new PropertyValueFactory("Altitude")); + flightLatCol.setCellValueFactory(new PropertyValueFactory("Latitude")); + flightLongCol.setCellValueFactory(new PropertyValueFactory("Longitude")); + flightHeadCol.setCellValueFactory(new PropertyValueFactory("Heading")); + flightLegDisCol.setCellValueFactory(new PropertyValueFactory("LegDistance")); + flightTotDisCol.setCellValueFactory(new PropertyValueFactory("totalDistance")); - ArrayList flightPaths; - flightPaths = theDataSet.getFlightPaths(); - ArrayList flightPoints = flightPaths.get(0).getFlight(); - flightTableView.setItems(FXCollections.observableArrayList(flightPoints)); + ArrayList flightPaths; + flightPaths = theDataSet.getFlightPaths(); + ArrayList flightPoints = flightPaths.get(0).getFlight(); + flightTableView.setItems(FXCollections.observableArrayList(flightPoints)); + } } /** @@ -222,27 +223,38 @@ public class FlightRDController extends Controller { flightPathListView(); } + /** + * Function for the 'Move Up' right click option on the points in the flight table. + */ public void movePointUp(){ FlightPoint toMove = flightTableView.getSelectionModel().getSelectedItem(); int toMoveIndex = flightTableView.getSelectionModel().getSelectedIndex(); try{ - theDataSet.moveFlightPoint(toMove, toMoveIndex-1); + if (toMoveIndex != 0) { + theDataSet.moveFlightPoint(toMove, toMoveIndex - 1); + } } catch (DataException e) { e.printStackTrace(); } updateTable(currentPathIndex); - + updatePaths(); } + /** + * Function for the 'Move Down' right click option on the points in the flight table. + */ public void movePointDown(){ FlightPoint toMove = flightTableView.getSelectionModel().getSelectedItem(); int toMoveIndex = flightTableView.getSelectionModel().getSelectedIndex(); try{ - theDataSet.moveFlightPoint(toMove, toMoveIndex+1); + if (toMoveIndex != flightTableView.getItems().size()-1) { + theDataSet.moveFlightPoint(toMove, toMoveIndex + 1); + } } catch (DataException e) { e.printStackTrace(); } updateTable(currentPathIndex); + updatePaths(); } /** @@ -257,6 +269,27 @@ public class FlightRDController extends Controller { flightTableView.refresh(); } + /** + * Updates the flight path list view so that it displays the correct names for the paths + */ + private void updatePaths(){ + try { + flightPathListView.getItems().clear(); + ArrayList flightPaths; + flightPaths = theDataSet.getFlightPaths(); + for(int i = 0; i() { public void handle(MouseEvent event) { String flightPathDisplayNameClicked = flightPathListView.getSelectionModel().getSelectedItem(); - String[] segments = flightPathDisplayNameClicked.split("_"); - String pathIdClicked = segments[0]; - - currentPathIndex = theDataSet.getFlightPaths().indexOf(theDataSet.getFlightPathDictionary() - .get(Integer.parseInt(pathIdClicked))); - currentPathId = Integer.parseInt(pathIdClicked); + 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); + } } }); flightPathListView.setItems(flightList); @@ -173,36 +175,37 @@ public class FlightSummaryController extends Controller { * Used to load the page from the MenuController. */ public void load() { - try { - theDataSet = getParent().getCurrentDataset(); - ArrayList flightPaths; - flightPaths = theDataSet.getFlightPaths(); - for(int i = 0; i 0){ - map = new Map(mapView, theDataSet.getFlightPaths().get(0).getRoutePath()); - }else{ - map = new Map(mapView, new RoutePath()); - } - flightPathListView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { - public void changed(ObservableValue observable, String oldValue, String newValue) { - int index = flightPathListView.getSelectionModel().getSelectedIndices().get(0); - if (index != -1) { - map.displayRoute(theDataSet.getFlightPaths().get(index).getRoutePath()); + if (theDataSet != null) { + try { + theDataSet = getParent().getCurrentDataset(); + ArrayList flightPaths; + flightPaths = theDataSet.getFlightPaths(); + for (int i = 0; i < flightPaths.size(); i++) { + int pathID = flightPaths.get(i).getID(); + String pathSource = flightPaths.get(i).departsFrom(); + String pathDestin = flightPaths.get(i).arrivesAt(); + String flightPathDisplayName = Integer.toString(pathID) + "_" + pathSource + "_" + pathDestin; + flightList.add(flightPathDisplayName); } + flightPathListView.setItems(flightList); + flightSummaryListView(); + } catch (Exception e) { + e.printStackTrace(); + } + if (theDataSet.getFlightPaths().size() > 0) { + map = new Map(mapView, theDataSet.getFlightPaths().get(0).getRoutePath()); + } else { + map = new Map(mapView, new RoutePath()); } - }); + flightPathListView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { + public void changed(ObservableValue observable, String oldValue, String newValue) { + int index = flightPathListView.getSelectionModel().getSelectedIndices().get(0); + if (index != -1) { + map.displayRoute(theDataSet.getFlightPaths().get(index).getRoutePath()); + } + } + }); + } } /**