From cb50ea176c8ce0d047f04d170c3a3419d99eebfa Mon Sep 17 00:00:00 2001 From: Fan-Wu Yang Date: Thu, 1 Jun 2017 15:30:30 +1200 Subject: [PATCH] Fixed up missing acceptance criteria of story 7 --- .../java/controllers/AddTripController.java | 2 +- .../controllers/SharedTripsController.java | 39 +++++++++++++----- src/main/java/model/Trip.java | 3 ++ src/main/resources/scenes/sharedtrips.fxml | 8 ++++ .../controllers/AddTripController.class | Bin 8814 -> 8829 bytes .../controllers/SharedTripsController.class | Bin 6772 -> 7501 bytes target/classes/model/Trip$Days.class | Bin 1669 -> 1669 bytes target/classes/model/Trip.class | Bin 2858 -> 2957 bytes target/classes/model/TripStop.class | Bin 1837 -> 1909 bytes target/classes/scenes/sharedtrips.fxml | 8 ++++ 10 files changed, 49 insertions(+), 11 deletions(-) diff --git a/src/main/java/controllers/AddTripController.java b/src/main/java/controllers/AddTripController.java index 345af28..24590be 100644 --- a/src/main/java/controllers/AddTripController.java +++ b/src/main/java/controllers/AddTripController.java @@ -147,7 +147,7 @@ public class AddTripController extends Controller{ } }); - String[] dir = {"University","Home"}; + String[] dir = {Trip.TO_UNI, Trip.TO_HOME}; ObservableList dirArr = FXCollections.observableArrayList(dir); direction.setItems(dirArr); direction.getSelectionModel().selectFirst(); diff --git a/src/main/java/controllers/SharedTripsController.java b/src/main/java/controllers/SharedTripsController.java index 5be5d54..34d5f8d 100644 --- a/src/main/java/controllers/SharedTripsController.java +++ b/src/main/java/controllers/SharedTripsController.java @@ -10,6 +10,7 @@ import javafx.scene.control.TableView; import javafx.scene.control.TextField; import model.SharedTrip; import model.Stop; +import model.Trip; import model.TripStop; import java.net.URL; @@ -36,6 +37,12 @@ public class SharedTripsController extends Controller{ private ObservableList sharedTrips; @FXML private TextField stopName; + @FXML + private ComboBox directionBox; + + public void showDetails(){ + + } public void resetSearch(){ stopsFilter.getSelectionModel().select(0); @@ -43,26 +50,35 @@ public class SharedTripsController extends Controller{ public void search(){ sharedTrips.remove(0, sharedTrips.size()); + //ignore stop boolean ignoreStopFilter = stopsFilter.getSelectionModel().getSelectedIndex() == 0; boolean ignoreStopNameSearch = stopName.getText().equals("") || stopName.getText() == null; + boolean ignoreStopSearch = ignoreStopFilter && ignoreStopNameSearch; Pattern stopNamePattern = Pattern.compile(".*"+stopName.getText()+".*", Pattern.CASE_INSENSITIVE); + //ignore direction + boolean ignoreDirection = directionBox.getSelectionModel().isSelected(0); for(SharedTrip sharedTrip: parent.getSession().getDataManager().getSharedTrips()){ //stops are equal - boolean added = false; + boolean add = false; for (TripStop stop : sharedTrip.route) { - if (stop.equals(stopsFilter.getValue()) || ignoreStopFilter) { - sharedTrips.add(sharedTrip); - added = true; + if (ignoreStopSearch){ + add = true; + break; + } + if (stop.equals(stopsFilter.getValue())) { + add = true; break; } if (stopNamePattern.matcher(stop.getName()).matches()){ - sharedTrips.add(sharedTrip); - added = true; + add = true; break; } } - if (added){ - continue;//for other filters later + if (!ignoreDirection) { + add = sharedTrip.direction.equals(directionBox.getValue()); + } + if (add){ + sharedTrips.add(sharedTrip);//for other filters later } } } @@ -76,7 +92,7 @@ public class SharedTripsController extends Controller{ daysColumn.setCellValueFactory(p -> new SimpleStringProperty(p.getValue().getDays())); //add all stops that have shared trips with them. TODO only display visible ones. ObservableList stops = FXCollections.observableArrayList(); - stops.add(new TripStop("None", "")); + stops.add(new TripStop("Any", "")); HashMap stopAdded = new HashMap<>(); for (SharedTrip trip:sharedTrips){ for(TripStop stop: trip.route){ @@ -91,10 +107,13 @@ public class SharedTripsController extends Controller{ search(); }); stopName.textProperty().addListener(e-> search()); + directionBox.valueProperty().addListener(e->search()); } @Override public void initialize(URL location, ResourceBundle resources) { - + ObservableList directions = FXCollections.observableArrayList(); + directions.addAll("Any", Trip.TO_UNI, Trip.TO_HOME); + directionBox.setItems(directions); } } diff --git a/src/main/java/model/Trip.java b/src/main/java/model/Trip.java index 3014265..5b48ff3 100644 --- a/src/main/java/model/Trip.java +++ b/src/main/java/model/Trip.java @@ -28,6 +28,9 @@ public class Trip { public static int SATURDAY = 5; public static int SUNDAY = 6; + public static String TO_UNI = "University"; + public static String TO_HOME = "Home"; + public enum Days{ MONDAY("Monday", 0), TUESDAY("Tuesday", 1), WEDNESDAY("Wednesday", 2), THURSDAY("THURSDAY", 3), FRIDAY("Friday", 4), SATURDAY("SATURDAY", 5), SUNDAY("SUNDAY", 6); diff --git a/src/main/resources/scenes/sharedtrips.fxml b/src/main/resources/scenes/sharedtrips.fxml index 9f9e825..387f20f 100644 --- a/src/main/resources/scenes/sharedtrips.fxml +++ b/src/main/resources/scenes/sharedtrips.fxml @@ -24,6 +24,7 @@ +