diff --git a/src/main/java/seng202/group9/Controller/Dataset.java b/src/main/java/seng202/group9/Controller/Dataset.java index 4438ac5..00b9277 100644 --- a/src/main/java/seng202/group9/Controller/Dataset.java +++ b/src/main/java/seng202/group9/Controller/Dataset.java @@ -1150,6 +1150,15 @@ public class Dataset { newPath.setID(pathID); flightPathDictionary.put(pathID, newPath); flightPaths.add(newPath); + FlightPoint sourcePoint = new FlightPoint(sourceAirport, pathID); + FlightPoint destinationPoint = new FlightPoint(sourceAirport, pathID); + try{ + addFlightPointToPath(sourcePoint); + addFlightPointToPath(destinationPoint); + } catch (DataException e){ + System.err.println( e.getClass().getName() + ": " + e.getMessage() ); + System.exit(0); + } } /** diff --git a/src/main/java/seng202/group9/Core/FlightPoint.java b/src/main/java/seng202/group9/Core/FlightPoint.java index c45e37a..d4538e7 100644 --- a/src/main/java/seng202/group9/Core/FlightPoint.java +++ b/src/main/java/seng202/group9/Core/FlightPoint.java @@ -16,7 +16,26 @@ public class FlightPoint { private double longitude; /** - * Constructor for FLight POint before set by the database. + * Constructor for Flight Point when creating a new path + * @param name + * @param indexID + */ + public FlightPoint(String name, int indexID) { + this.name = name; + this.ID = -1; + this.indexID = indexID; + this.type = ""; + this.via = ""; + this.heading = 0; + this.altitude = 0.0; + this.legDistance = 0; + this.totalDistance = 0; + this.latitude = 0.0; + this.longitude = 0.0; + } + + /** + * Constructor for Flight Point before set by the database. * @param type * @param name * @param altitude diff --git a/src/main/java/seng202/group9/GUI/FlightRDController.java b/src/main/java/seng202/group9/GUI/FlightRDController.java index b1e11af..7cf4e8a 100644 --- a/src/main/java/seng202/group9/GUI/FlightRDController.java +++ b/src/main/java/seng202/group9/GUI/FlightRDController.java @@ -4,22 +4,17 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.EventHandler; import javafx.fxml.FXML; -import javafx.fxml.Initializable; import javafx.scene.control.*; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.input.MouseEvent; -import seng202.group9.Controller.App; import seng202.group9.Controller.DataException; import seng202.group9.Controller.Dataset; import seng202.group9.Core.FlightPath; import seng202.group9.Core.FlightPoint; import javax.swing.*; -import java.net.URL; import java.util.ArrayList; -import java.util.Arrays; import java.util.LinkedHashMap; -import java.util.ResourceBundle; /** * Controller for the Flights Raw Data Scene. @@ -57,7 +52,7 @@ public class FlightRDController extends Controller { @FXML ListView flightPathListView; - final ObservableList flightList = FXCollections.observableArrayList(); + private ObservableList flightList = FXCollections.observableArrayList(); @FXML private TextField flightNameBox; @@ -82,7 +77,7 @@ public class FlightRDController extends Controller { * Loads the Flight paths into the List View and waits for a mouse clicked event for which it will update the table * to display the selected Flight paths points. Called from the MenuController. */ - public void flightPathListView() { + private void flightPathListView() { try { ArrayList flightPaths; flightPaths = theDataSet.getFlightPaths(); @@ -135,8 +130,8 @@ public class FlightRDController extends Controller { flightLatCol.setCellValueFactory(new PropertyValueFactory("Latitude")); flightLongCol.setCellValueFactory(new PropertyValueFactory("Longitude")); flightHeadCol.setCellValueFactory(new PropertyValueFactory("Heading")); - flightLegDisCol.setCellValueFactory(new PropertyValueFactory("Leg_Dist")); - flightTotDisCol.setCellValueFactory(new PropertyValueFactory("Tot_Dist")); + flightLegDisCol.setCellValueFactory(new PropertyValueFactory("LegDistance")); + flightTotDisCol.setCellValueFactory(new PropertyValueFactory("totalDistance")); ArrayList flightPaths; flightPaths = theDataSet.getFlightPaths(); @@ -175,7 +170,6 @@ public class FlightRDController extends Controller { ArrayList flightPoints = flightPaths.get(currentPathIndex).getFlight(); flightTableView.setItems(FXCollections.observableArrayList(flightPoints)); } catch ( Exception e ) { - //e.printStackTrace(); Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Flight Point Data Error"); alert.setHeaderText("Error adding a custom flight point entry."); @@ -204,7 +198,7 @@ public class FlightRDController extends Controller { */ public void deletePoint() { FlightPoint toDelete = flightTableView.getSelectionModel().getSelectedItem(); - int pathID = 0; + int pathID; try { pathID = toDelete.getIndex(); } catch (DataException e) { diff --git a/src/main/java/seng202/group9/GUI/FlightSummaryController.java b/src/main/java/seng202/group9/GUI/FlightSummaryController.java index 9dc5a29..c15cf63 100644 --- a/src/main/java/seng202/group9/GUI/FlightSummaryController.java +++ b/src/main/java/seng202/group9/GUI/FlightSummaryController.java @@ -124,7 +124,6 @@ public class FlightSummaryController extends Controller { } }); } - /** * Removes the selected path from the list view of paths and from the database. */ diff --git a/src/main/java/seng202/group9/GUI/NewPathPopUp.java b/src/main/java/seng202/group9/GUI/NewPathPopUp.java index 02e2f46..a219a9d 100644 --- a/src/main/java/seng202/group9/GUI/NewPathPopUp.java +++ b/src/main/java/seng202/group9/GUI/NewPathPopUp.java @@ -1,7 +1,9 @@ package seng202.group9.GUI; +import javafx.scene.control.Alert; import seng202.group9.Controller.DataException; import seng202.group9.Controller.EntryParser; +import seng202.group9.Core.FlightPoint; import javax.swing.*; import java.awt.*; @@ -17,7 +19,6 @@ public class NewPathPopUp { private String sourceAirport = null; private String destinationAirport = null; - // Creates and displays the pop up box for the user to input data. public void display() { JTextField field1 = new JTextField(); @@ -38,8 +39,11 @@ public class NewPathPopUp { }catch (DataException e){ sourceAirport = null; destinationAirport = null; - JOptionPane.showMessageDialog(null, "Source " + e.getMessage()); - return; + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Flight Path Name Error"); + alert.setHeaderText("Error adding the Source airport ICAO code."); + alert.setContentText(e.getMessage()); + alert.showAndWait(); } try{ EntryParser parser = new EntryParser(); @@ -47,8 +51,11 @@ public class NewPathPopUp { }catch (DataException e){ sourceAirport = null; destinationAirport = null; - JOptionPane.showMessageDialog(null, "Destination " + e.getMessage()); - return; + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Flight Path Name Error"); + alert.setHeaderText("Error adding the Destination airport ICAO code."); + alert.setContentText(e.getMessage()); + alert.showAndWait(); } } else { sourceAirport = null;