diff --git a/res/.nfs000000000244190a0000019c b/res/.nfs000000000244190a0000019c new file mode 100644 index 0000000..06f6220 Binary files /dev/null and b/res/.nfs000000000244190a0000019c differ diff --git a/res/userdb.db b/res/userdb.db index 8ddfcfe..49c3eca 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 d73e644..4cada3c 100644 --- a/src/main/java/seng202/group9/Controller/Dataset.java +++ b/src/main/java/seng202/group9/Controller/Dataset.java @@ -782,7 +782,9 @@ public class Dataset { //airport.getCountry().setPosition(new Position(airport.getLatitude(), airport.getLongitude())); //TODO Add City in country (This is extra work). airport.setCity(cityDictionary.get(airport.getCityName())); - airport.getCity().addAirport(airport); + if (airport.getCity() != null) { + airport.getCity().addAirport(airport); + } airport.setDepartureRoutes(new ArrayList()); airport.setArrivalRoutes(new ArrayList()); } diff --git a/src/main/java/seng202/group9/Controller/Session.java b/src/main/java/seng202/group9/Controller/Session.java index 655f74f..29811ae 100644 --- a/src/main/java/seng202/group9/Controller/Session.java +++ b/src/main/java/seng202/group9/Controller/Session.java @@ -17,57 +17,19 @@ public class Session implements Serializable { private SceneCode sceneDisplayed; - private int currentFlightPointID; - private int currentFlightPathID; - private HashMap filteredAirlines; - private HashMap filteredAirports; - private HashMap filteredRoutes; + private int currentFlightPointID;//current selected flight point + private int currentFlightPathID;//cureselected flight path + private HashMap filteredAirlines;//current filtered airlines + private HashMap filteredAirports;//current filtered airports + private HashMap filteredRoutes;//current filtered routes + private HashMap airportFilter;//storage for filter values for airports + private HashMap airlineFilter;//storage for filter values for airports + private HashMap routeFilter;//storage for filter values for airports private String selectedgraphagainst; private String selectedgraphoptions; private Boolean usefilter; private Boolean forceGraph; private String selectedDataToGraph; - - public Boolean getForceGraph() { - return forceGraph; - } - - public void setForceGraph(Boolean forceGraph) { - this.forceGraph = forceGraph; - } - - public String getSelectedDataToGraph() { - return selectedDataToGraph; - } - - public void setSelectedDataToGraph(String selectedDataToGraph) { - this.selectedDataToGraph = selectedDataToGraph; - } - - public String getSelectedgraphagainst() { - return selectedgraphagainst; - } - - public void setSelectedgraphagainst(String selectedgraphagainst) { - this.selectedgraphagainst = selectedgraphagainst; - } - - public String getSelectedgraphoptions() { - return selectedgraphoptions; - } - - public void setSelectedgraphoptions(String selectedgraphoptions) { - this.selectedgraphoptions = selectedgraphoptions; - } - - public Boolean getUsefilter() { - return usefilter; - } - - public void setUsefilter(Boolean usefilter) { - this.usefilter = usefilter; - } - private String airlineToEdit; private String airportToEdit; private String routeToEdit; @@ -84,6 +46,10 @@ public class Session implements Serializable { this.filteredAirlines = new HashMap<>(); this.filteredAirports = new HashMap<>(); this.filteredRoutes = new HashMap<>(); + //set the filters to nothing + airportFilter = new HashMap<>(); + airlineFilter = new HashMap<>(); + routeFilter = new HashMap<>(); } /** @@ -198,4 +164,68 @@ public class Session implements Serializable { return currentFlightPathID; } + + public Boolean getForceGraph() { + return forceGraph; + } + + public void setForceGraph(Boolean forceGraph) { + this.forceGraph = forceGraph; + } + + public String getSelectedDataToGraph() { + return selectedDataToGraph; + } + + public void setSelectedDataToGraph(String selectedDataToGraph) { + this.selectedDataToGraph = selectedDataToGraph; + } + + public String getSelectedgraphagainst() { + return selectedgraphagainst; + } + + public void setSelectedgraphagainst(String selectedgraphagainst) { + this.selectedgraphagainst = selectedgraphagainst; + } + + public String getSelectedgraphoptions() { + return selectedgraphoptions; + } + + public void setSelectedgraphoptions(String selectedgraphoptions) { + this.selectedgraphoptions = selectedgraphoptions; + } + + public Boolean getUsefilter() { + return usefilter; + } + + public void setUsefilter(Boolean usefilter) { + this.usefilter = usefilter; + } + + public HashMap getAirportFilter() { + return airportFilter; + } + + public void setAirportFilter(HashMap airportFilter) { + this.airportFilter = airportFilter; + } + + public HashMap getAirlineFilter() { + return airlineFilter; + } + + public void setAirlineFilter(HashMap airlineFilter) { + this.airlineFilter = airlineFilter; + } + + public HashMap getRouteFilter() { + return routeFilter; + } + + public void setRouteFilter(HashMap routeFilter) { + this.routeFilter = routeFilter; + } } diff --git a/src/main/java/seng202/group9/GUI/AirlineFilterController.java b/src/main/java/seng202/group9/GUI/AirlineFilterController.java index b8db03f..36873ee 100644 --- a/src/main/java/seng202/group9/GUI/AirlineFilterController.java +++ b/src/main/java/seng202/group9/GUI/AirlineFilterController.java @@ -43,13 +43,27 @@ public class AirlineFilterController extends Controller { private Dataset theDataSet = null; private Session currentSession = null; + private HashMap sesFilter;//session filter dictionary /** * Loads up the current dataset and current session. */ public void load() { + if (!checkDataset()){ + return; + } theDataSet = getParent().getCurrentDataset(); currentSession = getParent().getSession(); + + sesFilter = currentSession.getAirlineFilter(); + + airlNameFilter.setText(sesFilter.get("Name")); + airlAliasFilter.setText(sesFilter.get("Alias")); + airlIATAFilter.setText(sesFilter.get("IATA")); + airlICAOFilter.setText(sesFilter.get("ICAO")); + airlCallsignFilter.setText(sesFilter.get("Callsign")); + airlCountryFilter.setText(sesFilter.get("Country")); + airlActiveFilter.setText(sesFilter.get("Active")); } /** @@ -61,26 +75,35 @@ public class AirlineFilterController extends Controller { public void filterAirlines() { //The filter function also operates like a search function AirlineFilter filter = new AirlineFilter(theDataSet.getAirlines()); + currentSession.setAirlineFilter(new HashMap()); + sesFilter = currentSession.getAirlineFilter(); if (airlNameFilter.getText() != null) { filter.filterName(airlNameFilter.getText()); + sesFilter.put("Name", airlNameFilter.getText()); } if (airlAliasFilter.getText() != null) { filter.filterAlias(airlAliasFilter.getText()); + sesFilter.put("Alias", airlAliasFilter.getText()); } if (airlIATAFilter.getText() != null) { filter.filterIATA(airlIATAFilter.getText()); + sesFilter.put("IATA", airlIATAFilter.getText()); } if (airlICAOFilter.getText() != null) { filter.filterICAO(airlICAOFilter.getText()); + sesFilter.put("ICAO", airlICAOFilter.getText()); } if (airlCallsignFilter.getText() != null) { filter.filterCallsign(airlCallsignFilter.getText()); + sesFilter.put("Callsign", airlCallsignFilter.getText()); } if (airlCountryFilter.getText() != null) { filter.filterCountry(airlCountryFilter.getText()); + sesFilter.put("Country", airlCountryFilter.getText()); } if (airlActiveFilter.getText() != null) { filter.filterActive(airlActiveFilter.getText()); + sesFilter.put("Active", airlActiveFilter.getText()); } Alert alert = new Alert(Alert.AlertType.INFORMATION); diff --git a/src/main/java/seng202/group9/GUI/AirportFilterController.java b/src/main/java/seng202/group9/GUI/AirportFilterController.java index f54236b..b2db896 100644 --- a/src/main/java/seng202/group9/GUI/AirportFilterController.java +++ b/src/main/java/seng202/group9/GUI/AirportFilterController.java @@ -48,6 +48,7 @@ public class AirportFilterController extends Controller { private Dataset theDataSet = null; //Set an empty session to be assigned to the current session. private Session currentSession = null; + private HashMap sesFilter; /** * Filters the airports table by any field. @@ -58,38 +59,51 @@ public class AirportFilterController extends Controller { public void filterAirports() { //The filter function also operates like a search function AirportFilter filter = new AirportFilter(theDataSet.getAirports()); + currentSession.setAirportFilter(new HashMap()); + sesFilter = currentSession.getAirportFilter(); if (airpNameFilter.getText() != null) { filter.filterName(airpNameFilter.getText()); + sesFilter.put("Name", airpNameFilter.getText()); } if (airpCityFilter.getText() != null) { filter.filterCity(airpCityFilter.getText()); + sesFilter.put("City", airpCityFilter.getText()); } if (airpCountryFilter.getText() != null) { filter.filterCountry(airpCountryFilter.getText()); + sesFilter.put("Country", airpCountryFilter.getText()); } if (airpIATAFAAFilter.getText() != null) { filter.filterIATA_FFA(airpIATAFAAFilter.getText()); + sesFilter.put("IATA/FFA", airpIATAFAAFilter.getText()); } if (airpICAOFilter.getText() != null) { filter.filterICAO(airpICAOFilter.getText()); + sesFilter.put("ICAO", airpICAOFilter.getText()); } if (airpLatitudeFilter.getText() != null) { filter.filterLatitude(airpLatitudeFilter.getText()); + sesFilter.put("Latitude", airpLatitudeFilter.getText()); } if (airpLongitudeFilter.getText() != null) { filter.filterLongitude(airpLongitudeFilter.getText()); + sesFilter.put("Longitude", airpLongitudeFilter.getText()); } if (airpAltitudeFilter.getText() != null) { filter.filterAltitude(airpAltitudeFilter.getText()); + sesFilter.put("Altitude", airpAltitudeFilter.getText()); } if (airpTimezoneFilter.getText() != null) { filter.filterTimezone(airpTimezoneFilter.getText()); + sesFilter.put("Tz", airpTimezoneFilter.getText()); } if (airpDSTFilter.getText() != null) { filter.filterDST(airpDSTFilter.getText()); + sesFilter.put("DST", airpDSTFilter.getText()); } if (airpTzFilter.getText() != null) { filter.filterOlson(airpTzFilter.getText()); + sesFilter.put("Olson", airpTzFilter.getText()); } Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Airport Filter Successful"); @@ -109,7 +123,24 @@ public class AirportFilterController extends Controller { } public void load() { + if (!checkDataset()){ + return; + } theDataSet = getParent().getCurrentDataset(); currentSession = getParent().getSession(); + sesFilter = currentSession.getAirportFilter(); + + airpNameFilter.setText(sesFilter.get("Name")); + airpCityFilter.setText(sesFilter.get("City")); + airpCountryFilter.setText(sesFilter.get("Country")); + airpIATAFAAFilter.setText(sesFilter.get("IATA/FFA")); + airpICAOFilter.setText(sesFilter.get("ICAO")); + airpLatitudeFilter.setText(sesFilter.get("Latitude")); + airpLongitudeFilter.setText(sesFilter.get("Longitude")); + airpAltitudeFilter.setText(sesFilter.get("Altitude")); + airpTimezoneFilter.setText(sesFilter.get("Tz")); + airpDSTFilter.setText(sesFilter.get("DST")); + airpTzFilter.setText(sesFilter.get("Olson")); + } } diff --git a/src/main/java/seng202/group9/GUI/RouteFilterController.java b/src/main/java/seng202/group9/GUI/RouteFilterController.java index 8eb9bdb..6407e32 100644 --- a/src/main/java/seng202/group9/GUI/RouteFilterController.java +++ b/src/main/java/seng202/group9/GUI/RouteFilterController.java @@ -37,6 +37,7 @@ public class RouteFilterController extends Controller { private Dataset theDataSet = null; //Set an empty session to be assigned to the current session. private Session currentSession = null; + private HashMap sesFilter; /** * Filters the routes table by any field. @@ -47,23 +48,30 @@ public class RouteFilterController extends Controller { public void filterRoutes(){ //The filter function also operates like a search function RouteFilter filter = new RouteFilter(theDataSet.getRoutes()); + currentSession.setRouteFilter(new HashMap()); if (rAirlineFilter.getText() != null) { filter.filterAirline(rAirlineFilter.getText()); + sesFilter.put("Airline", rAirlineFilter.getText()); } if (rSourceFilter.getText() != null) { filter.filterSourceAirport(rSourceFilter.getText()); + sesFilter.put("Airline", rSourceFilter.getText()); } if (rDestFilter.getText() != null) { filter.filterDestinationAirport(rDestFilter.getText()); + sesFilter.put("Airline", rDestFilter.getText()); } if (rCodeshareFilter.getText() != null) { filter.filterCodeshare(rCodeshareFilter.getText()); + sesFilter.put("Airline", rCodeshareFilter.getText()); } if (rStopsFilter.getText() != null) { filter.filterDestinationStops(rStopsFilter.getText()); + sesFilter.put("Airline", rStopsFilter.getText()); } if (rEquipmentFilter.getText() != null) { filter.filterEquipment(rEquipmentFilter.getText()); + sesFilter.put("Airline", rEquipmentFilter.getText()); } Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Route Filter Successful"); @@ -91,5 +99,12 @@ public class RouteFilterController extends Controller { } theDataSet = getParent().getCurrentDataset(); currentSession = getParent().getSession(); + sesFilter = currentSession.getRouteFilter(); + rAirlineFilter.setText(sesFilter.get("Airline")); + rSourceFilter.setText(sesFilter.get("Source")); + rDestFilter.setText(sesFilter.get("Destination")); + rCodeshareFilter.setText(sesFilter.get("Codeshare")); + rStopsFilter.setText(sesFilter.get("Stops")); + rEquipmentFilter.setText(sesFilter.get("Equipment")); } }