Merge branch 'WIP_Flight_Add_Path' into 'master'
Implements the button 'new' on the Flight raw data page which can be used to cre… …ate a new blank path. Currently does not reload the list view of paths to include the new path. See merge request !12
This commit is contained in:
@@ -13,6 +13,7 @@ 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;
|
||||
@@ -115,7 +116,7 @@ public class FlightRDController extends Controller {
|
||||
}
|
||||
|
||||
/**
|
||||
* Function used to load the table for the Flight points initially from the MenuController
|
||||
* Used to load the table for the Flight points initially from the MenuController
|
||||
*/
|
||||
public void load() {
|
||||
theDataSet = getParent().getCurrentDataset();
|
||||
@@ -133,11 +134,13 @@ public class FlightRDController extends Controller {
|
||||
|
||||
ArrayList<FlightPath> flightPaths;
|
||||
flightPaths = theDataSet.getFlightPaths();
|
||||
//int firstID = flightPaths.get(0).getID();
|
||||
ArrayList<FlightPoint> flightPoints = flightPaths.get(0).getFlight();
|
||||
flightTableView.setItems(FXCollections.observableArrayList(flightPoints));
|
||||
}
|
||||
|
||||
/**
|
||||
* Will take the inputs from the text fields and adds the point to the current flight path.
|
||||
*/
|
||||
public void addFlightPoint() {
|
||||
ArrayList<FlightPath> flightPaths;
|
||||
flightPaths = theDataSet.getFlightPaths();
|
||||
@@ -171,10 +174,28 @@ public class FlightRDController extends Controller {
|
||||
alert.setTitle("Flight Point Data Error");
|
||||
alert.setHeaderText("Error adding a custom flight point entry.");
|
||||
alert.setContentText(e.getMessage());
|
||||
alert.showAndWait();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a pop up dialog which prompts the user for two ICAO airport codes which will use when creating a new path
|
||||
*/
|
||||
public void newPath() {
|
||||
NewPathPopUp dialogBox = new NewPathPopUp();
|
||||
dialogBox.display();
|
||||
String destAirport = dialogBox.getDestinationAirport();
|
||||
String sourceAirport = dialogBox.getSourceAirport();
|
||||
|
||||
if (destAirport != null && sourceAirport != null){
|
||||
theDataSet.addFlightPath(sourceAirport, destAirport);
|
||||
}
|
||||
}
|
||||
|
||||
public void flightAnalyser(){
|
||||
JOptionPane.showMessageDialog(null, "This is not Implemented yet");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadOnce(){
|
||||
flightPathListView();
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
package seng202.group9.GUI;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
import static java.awt.Color.red;
|
||||
|
||||
/**
|
||||
* Creates the pop up box where the user will enter the Source and Destination airports for the path name, will reject
|
||||
* empty strings, strings of length 4 and characters that are not A-Z. Will convert lowercase to uppercase.
|
||||
* Created by Liam Beckett on 17/09/2016.
|
||||
*/
|
||||
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();
|
||||
JTextField field2 = new JTextField();
|
||||
JPanel panel = new JPanel(new GridLayout(0, 1));
|
||||
panel.add(new JLabel("Source Airport ICAO Code" ));
|
||||
panel.add(field1);
|
||||
panel.add(new JLabel("Destination Airport ICAO Code: "));
|
||||
panel.add(field2);
|
||||
int result = JOptionPane.showConfirmDialog(null, panel, "Test",
|
||||
JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
|
||||
if (result == JOptionPane.OK_OPTION) {
|
||||
sourceAirport = field1.getText().toUpperCase();
|
||||
destinationAirport = field2.getText().toUpperCase();
|
||||
if (validate(sourceAirport) != true && validate(destinationAirport) != true){
|
||||
sourceAirport = null;
|
||||
destinationAirport = null;
|
||||
JOptionPane.showMessageDialog(null, "Enter a vaild ICAO Code!");
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
sourceAirport = null;
|
||||
destinationAirport = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Checks the users entered string to make sure it is a 4 letter valid code.
|
||||
private static boolean validate(String airportCode){
|
||||
if(airportCode == ""){
|
||||
return false;
|
||||
} else if(airportCode.length() != 4){
|
||||
return false;
|
||||
} else if(!isLetter(airportCode)){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Used by the validate() method to cycle through the string looking for non letter characters.
|
||||
private static boolean isLetter(String airportCode){
|
||||
char[] chars = airportCode.toCharArray();
|
||||
|
||||
for (char element : chars) {
|
||||
if(!Character.isLetter(element)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public String getSourceAirport() {
|
||||
return sourceAirport;
|
||||
}
|
||||
|
||||
public String getDestinationAirport() {
|
||||
return destinationAirport;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user