diff --git a/src/main/java/controllers/SharedTripsController.java b/src/main/java/controllers/SharedTripsController.java index 2f48a0d..df0c4c6 100644 --- a/src/main/java/controllers/SharedTripsController.java +++ b/src/main/java/controllers/SharedTripsController.java @@ -1,10 +1,15 @@ package controllers; import javafx.beans.property.SimpleStringProperty; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; import javafx.fxml.FXML; +import javafx.scene.control.ComboBox; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import model.SharedTrip; +import model.Stop; +import model.TripStop; import java.net.URL; import java.util.ResourceBundle; @@ -22,13 +27,41 @@ public class SharedTripsController extends Controller{ private TableColumn directionColumn; @FXML private TableColumn daysColumn; + @FXML + private ComboBox stopsFilter; + @FXML + private ObservableList sharedTrips; + + public void search(){ + sharedTrips.removeAll(); + sharedTrips.remove(0, sharedTrips.size()); + for(SharedTrip sharedTrip: parent.getSession().getDataManager().getSharedTrips()){ + //stops are equal + boolean added = false; + for (TripStop stop: sharedTrip.route){ + if (stop.equals(stopsFilter.getValue())){ + sharedTrips.add(sharedTrip); + added = true; + break; + } + } + if (added){ + continue; + } + } + } @Override public void runLater(){ - sharedTripsTable.setItems(parent.getSession().getDataManager().getSharedTrips()); + sharedTrips = FXCollections.observableArrayList(parent.getSession().getDataManager().getSharedTrips()); + sharedTripsTable.setItems(sharedTrips); tripNameColumn.setCellValueFactory(p -> new SimpleStringProperty(p.getValue().name)); directionColumn.setCellValueFactory(p -> new SimpleStringProperty(p.getValue().direction)); daysColumn.setCellValueFactory(p -> new SimpleStringProperty(p.getValue().getDays())); + stopsFilter.setItems(parent.getSession().getDataManager().getStops()); + stopsFilter.valueProperty().addListener( e ->{ + search(); + }); } @Override diff --git a/src/main/java/model/TripStop.java b/src/main/java/model/TripStop.java index 99f7b65..02da1cf 100644 --- a/src/main/java/model/TripStop.java +++ b/src/main/java/model/TripStop.java @@ -46,6 +46,10 @@ public class TripStop{ return false; } + public boolean equals(Stop stop){ + return name.getValue().equals(stop.getAddress()); + } + public void serialise(){ serialiseTime = time.getValue(); serialiseName = name.getValue(); diff --git a/src/main/resources/scenes/sharedtrips.fxml b/src/main/resources/scenes/sharedtrips.fxml index e59e178..c6669be 100644 --- a/src/main/resources/scenes/sharedtrips.fxml +++ b/src/main/resources/scenes/sharedtrips.fxml @@ -11,27 +11,36 @@ + + + + + - diff --git a/target/classes/controllers/SharedTripsController.class b/target/classes/controllers/SharedTripsController.class index e3434ee..24799f4 100644 Binary files a/target/classes/controllers/SharedTripsController.class and b/target/classes/controllers/SharedTripsController.class differ diff --git a/target/classes/model/TripStop.class b/target/classes/model/TripStop.class index 464c3a2..b105253 100644 Binary files a/target/classes/model/TripStop.class and b/target/classes/model/TripStop.class differ diff --git a/target/classes/scenes/sharedtrips.fxml b/target/classes/scenes/sharedtrips.fxml index e59e178..c6669be 100644 --- a/target/classes/scenes/sharedtrips.fxml +++ b/target/classes/scenes/sharedtrips.fxml @@ -11,27 +11,36 @@ + + + + + -