Fixed a bug from Route Filter and implemented Airport Filter in GUI

This commit is contained in:
Sunguin Peng
2016-09-17 17:40:24 +12:00
parent 4fde239167
commit 30f7b2d842
6 changed files with 141 additions and 14 deletions
@@ -83,7 +83,7 @@ public class AirportFilter extends Filter{
}
public void filterLatitude(String latitude){
String regexCode = "(?i).*"+latitude+".*";
String regexCode = ".*"+latitude+".*";
int index = 0;
while(index < filteredList.size()){
if (!String.valueOf(filteredList.get(index).getLatitude()).matches(regexCode)){
@@ -95,7 +95,7 @@ public class AirportFilter extends Filter{
}
public void filterLongitude(String longitude){
String regexCode = "(?i).*"+longitude+".*";
String regexCode = ".*"+longitude+".*";
int index = 0;
while(index < filteredList.size()){
if (!String.valueOf(filteredList.get(index).getLongitude()).matches(regexCode)){
@@ -107,7 +107,7 @@ public class AirportFilter extends Filter{
}
public void filterAltitude(String altitude){
String regexCode = "(?i).*"+altitude+".*";
String regexCode = ".*"+altitude+".*";
int index = 0;
while(index < filteredList.size()){
if (!String.valueOf(filteredList.get(index).getAltitude()).matches(regexCode)){
@@ -146,7 +146,7 @@ public class AirportFilter extends Filter{
String regexCode = "(?i).*"+DST+".*";
int index = 0;
while(index < filteredList.size()){
if (!filteredList.get(index).getCountry().getDST().matches(regexCode)){
if (!filteredList.get(index).getDST().matches(regexCode)){
filteredList.remove(index);
}else{
index++;
@@ -73,7 +73,7 @@ public class RouteFilter extends Filter{
String regexCode = "(?i).*"+stops+".*";
int index = 0;
while(index < filteredList.size()){
if (!filteredList.get(index).getArrivalAirport().matches(regexCode)){
if (!String.valueOf(filteredList.get(index).getStops()).matches(regexCode)){
filteredList.remove(index);
}else{
index++;
@@ -12,6 +12,7 @@ import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.util.Callback;
import seng202.group9.Controller.AirportFilter;
import seng202.group9.Controller.App;
import seng202.group9.Controller.Dataset;
import seng202.group9.Core.Airport;
@@ -74,6 +75,29 @@ public class AirportRDController extends Controller{
@FXML
private TextField airpTzBox;
@FXML
private TextField airpNameFilter;
@FXML
private TextField airpCityFilter;
@FXML
private TextField airpCountryFilter;
@FXML
private TextField airpIATAFFAFilter;
@FXML
private TextField airpICAOFilter;
@FXML
private TextField airpLatitudeFilter;
@FXML
private TextField airpLongitudeFilter;
@FXML
private TextField airpAltitudeFilter;
@FXML
private TextField airpTimezoneFilter;
@FXML
private TextField airpDSTFilter;
@FXML
private TextField airpTzFilter;
private Dataset theDataSet = null;
public void load() {
@@ -136,4 +160,42 @@ public class AirportRDController extends Controller{
theDataSet.deleteAirport(toDelete);
tableViewAirportRD.setItems(FXCollections.observableArrayList(theDataSet.getAirports()));
}
public void filterAirports() {
AirportFilter filter = new AirportFilter(theDataSet.getAirports());
if (airpNameFilter.getText() != null) {
filter.filterName(airpNameFilter.getText());
}
if (airpCityFilter.getText() != null) {
filter.filterCity(airpCityFilter.getText());
}
if (airpCountryFilter.getText() != null) {
filter.filterCountry(airpCountryFilter.getText());
}
if (airpIATAFFAFilter.getText() != null) {
filter.filterIATA_FFA(airpIATAFFAFilter.getText());
}
if (airpICAOFilter.getText() != null) {
filter.filterICAO(airpICAOFilter.getText());
}
if (airpLatitudeFilter.getText() != null) {
filter.filterLatitude(airpLatitudeFilter.getText());
}
if (airpLongitudeFilter.getText() != null) {
filter.filterLongitude(airpLongitudeFilter.getText());
}
if (airpAltitudeFilter.getText() != null) {
filter.filterAltitude(airpAltitudeFilter.getText());
}
if (airpTimezoneFilter.getText() != null) {
filter.filterTimezone(airpTimezoneFilter.getText());
}
if (airpDSTFilter.getText() != null) {
filter.filterDST(airpDSTFilter.getText());
}
if (airpTzFilter.getText() != null) {
filter.filterOlson(airpTzFilter.getText());
}
tableViewAirportRD.setItems(FXCollections.<Airport>observableArrayList(filter.getFilteredData()));
}
}
@@ -126,7 +126,7 @@ public class RouteRDController extends Controller {
public void filterRoutes(){
RouteFilter filter = new RouteFilter(theDataSet.getRoutes());
if (rAirlineFilter.getText() != null && !rAirlineFilter.getText().equals("")) {
if (rAirlineFilter.getText() != null) {
//System.out.println("Hello over here");
filter.filterAirline(rAirlineFilter.getText());
}