From 8abe49ab1575b77afba3725b82333e30e72bf3f8 Mon Sep 17 00:00:00 2001 From: Fan-Wu Yang Date: Wed, 24 May 2017 17:16:32 +1200 Subject: [PATCH] Users can now view trips and trips now have a name field --- .../java/controllers/AddTripController.java | 39 +++--- src/main/java/controllers/BaseController.java | 4 + .../java/controllers/MyTripsController.java | 86 ++++++++++++++ src/main/java/model/Trip.java | 35 +++--- src/main/resources/scenes/addtrip.fxml | 29 +++-- src/main/resources/scenes/base.fxml | 5 + src/main/resources/scenes/mytrips.fxml | 112 ++++++++++++++++++ .../controllers/AddTripController$1.class | Bin 1896 -> 1896 bytes .../controllers/AddTripController$2.class | Bin 2071 -> 2104 bytes .../controllers/AddTripController.class | Bin 8198 -> 8592 bytes .../classes/controllers/BaseController.class | Bin 2664 -> 2773 bytes .../controllers/MyTripsController.class | Bin 0 -> 4337 bytes target/classes/model/Trip.class | Bin 2953 -> 2799 bytes target/classes/scenes/addtrip.fxml | 29 +++-- target/classes/scenes/base.fxml | 5 + target/classes/scenes/mytrips.fxml | 112 ++++++++++++++++++ target/classes/serialisation/trips.json | 2 +- 17 files changed, 402 insertions(+), 56 deletions(-) create mode 100644 src/main/java/controllers/MyTripsController.java create mode 100644 src/main/resources/scenes/mytrips.fxml create mode 100644 target/classes/controllers/MyTripsController.class create mode 100644 target/classes/scenes/mytrips.fxml diff --git a/src/main/java/controllers/AddTripController.java b/src/main/java/controllers/AddTripController.java index 62e7fc3..ec5f661 100644 --- a/src/main/java/controllers/AddTripController.java +++ b/src/main/java/controllers/AddTripController.java @@ -25,35 +25,37 @@ import java.util.ResourceBundle; public class AddTripController extends Controller{ @FXML - ComboBox routeDropdown; + private ComboBox routeDropdown; @FXML - ComboBox ride; + private ComboBox ride; @FXML - ComboBox direction; + private ComboBox direction; @FXML - TableView routeTable; + private TableView routeTable; @FXML - TableColumn stopName; + private TableColumn stopName; @FXML - TableColumn stopTime; + private TableColumn stopTime; @FXML - CheckBox mon; + private CheckBox mon; @FXML - CheckBox tues; + private CheckBox tues; @FXML - CheckBox wed; + private CheckBox wed; @FXML - CheckBox thur; + private CheckBox thur; @FXML - CheckBox fri; + private CheckBox fri; @FXML - CheckBox sat; + private CheckBox sat; @FXML - CheckBox sun; + private CheckBox sun; @FXML - ComboBox reoccur; + private ComboBox reoccur; @FXML - DatePicker endDate; + private DatePicker endDate; + @FXML + private TextField tripName; ObservableList stops; @@ -72,6 +74,11 @@ public class AddTripController extends Controller{ failure += "You must select a ride (vehicle) for this trip.\n"; fail = true; } + if (tripName.getText() == null || tripName.getText() == ""){ + failure += "You must name this Trip.\n"; + fail = true; + } + for (TripStop stop: stops){ if (stop.getTime().equals("")){ failure += "You must have all times for stops filled out.\n"; @@ -85,7 +92,7 @@ public class AddTripController extends Controller{ if (endDate.getValue() != null && boolReoccur == true){ date = endDate.getValue().toString(); } - Trip trip = new Trip(stops, direction.getValue(), ride.getValue(), days, boolReoccur, date); + Trip trip = new Trip(tripName.getText() ,stops, direction.getValue(), ride.getValue(), days, boolReoccur, date); System.out.println(trip); Optional result = popUp(Alert.AlertType.WARNING, "Warning!", "Crucial Information missing", failure, ButtonSets.YesNo); parent.getSession().getDataManager().addTrip(trip); diff --git a/src/main/java/controllers/BaseController.java b/src/main/java/controllers/BaseController.java index 82f4d47..383db9e 100644 --- a/src/main/java/controllers/BaseController.java +++ b/src/main/java/controllers/BaseController.java @@ -49,6 +49,10 @@ public class BaseController extends Controller { changeScene(SceneCode.ADD_TRIP); } + public void myTrips() throws Exception{ + changeScene(SceneCode.MY_TRIPS); + } + public void setContent(Parent parent1){ //remove all children that do not belong to the original fxml while (base.getChildren().size() > childNum) { diff --git a/src/main/java/controllers/MyTripsController.java b/src/main/java/controllers/MyTripsController.java new file mode 100644 index 0000000..c661f07 --- /dev/null +++ b/src/main/java/controllers/MyTripsController.java @@ -0,0 +1,86 @@ +package controllers; + +import javafx.collections.ObservableList; +import javafx.fxml.FXML; +import javafx.scene.control.Label; +import javafx.scene.control.ListView; +import javafx.scene.control.TableView; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.paint.Color; +import model.Trip; +import model.TripStop; + +import java.net.URL; +import java.util.ResourceBundle; + +/** + * Created by Gondr on 24/05/2017. + */ +public class MyTripsController extends Controller{ + @FXML + private Label rideLabel; + @FXML + private Label directionLabel; + @FXML + private Label mondayLabel; + @FXML + private Label tuesdayLabel; + @FXML + private Label wednesdayLabel; + @FXML + private Label thursdayLabel; + @FXML + private Label fridayLabel; + @FXML + private Label reoccuringLabel; + @FXML + private Label endDateLabel; + @FXML + private TableView stopsList; + @FXML + private ListView tripsList; + @FXML + private ObservableList trips; + + public void setRideDays(Label day, boolean travelling){ + if (travelling){ + day.setTextFill(Color.GREEN); + }else{ + day.setTextFill(Color.RED); + } + } + + @Override + public void runLater(){ + //fill tables etc; + trips = parent.getSession().getDataManager().getTrips(); + tripsList.setItems(trips); + tripsList.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> { + Trip trip = tripsList.getSelectionModel().getSelectedItem(); + stopsList.setItems(trip.route); + rideLabel.setText(trip.ride.toString()); + directionLabel.setText(trip.direction); + setRideDays(mondayLabel, trip.days[Trip.MONDAY]); + setRideDays(tuesdayLabel, trip.days[Trip.TUESDAY]); + setRideDays(wednesdayLabel, trip.days[Trip.WEDNESDAY]); + setRideDays(thursdayLabel, trip.days[Trip.THURSDAY]); + setRideDays(fridayLabel, trip.days[Trip.FRIDAY]); + if (trip.reoccur){ + reoccuringLabel.setText("Yes"); + endDateLabel.setText(trip.endDate); + }else{ + reoccuringLabel.setText("No"); + endDateLabel.setText("-"); + } + }); + } + + @Override + public void initialize(URL location, ResourceBundle resources) { + rideLabel.setText("-"); + directionLabel.setText("-"); + reoccuringLabel.setText("-"); + endDateLabel.setText("-"); + } +} diff --git a/src/main/java/model/Trip.java b/src/main/java/model/Trip.java index adfd320..25dd263 100644 --- a/src/main/java/model/Trip.java +++ b/src/main/java/model/Trip.java @@ -11,23 +11,25 @@ import java.util.Arrays; */ public class Trip { - protected transient ObservableList route; + public transient ObservableList route; private ArrayList serialisedRoute; - protected String direction; - protected Ride ride; - protected boolean[] days; - protected boolean reoccur; - protected String endDate; + public String direction; + public Ride ride; + public boolean[] days; + public boolean reoccur; + public String endDate; + public String name; - static int MONDAY = 0; - static int TUESDAY = 1; - static int WEDNESDAY = 2; - static int THURSDAY = 3; - static int FRIDAY = 4; - static int SATURDAY = 5; - static int SUNDAY = 6; + public static int MONDAY = 0; + public static int TUESDAY = 1; + public static int WEDNESDAY = 2; + public static int THURSDAY = 3; + public static int FRIDAY = 4; + public static int SATURDAY = 5; + public static int SUNDAY = 6; - public Trip(ObservableList route, String direction, Ride ride, boolean[] days, boolean reoccur, String endDate){ + public Trip(String name, ObservableList route, String direction, Ride ride, boolean[] days, boolean reoccur, String endDate){ + this.name = name; this.route = route; this.direction = direction; this.ride = ride; @@ -37,12 +39,11 @@ public class Trip { } public String toString(){ - String tripString = String.format("This trip has %s stops and driven by %s.", route.size(), ride); - return tripString; + return name; } public boolean equals(Trip trip){ - if (trip.direction.equals(direction) && ride.equals(trip.ride) && Arrays.equals(trip.days,days) && trip.reoccur == reoccur + if (trip.name.equals(name) && trip.direction.equals(direction) && ride.equals(trip.ride) && Arrays.equals(trip.days,days) && trip.reoccur == reoccur && trip.endDate.equals(endDate)){ for (int i = 0; i < trip.route.size(); i++){ if (!route.get(i).equals(trip.route.get(i))){ diff --git a/src/main/resources/scenes/addtrip.fxml b/src/main/resources/scenes/addtrip.fxml index 016fa49..ca4b0c6 100644 --- a/src/main/resources/scenes/addtrip.fxml +++ b/src/main/resources/scenes/addtrip.fxml @@ -17,7 +17,8 @@ - + + @@ -27,18 +28,18 @@ -