diff --git a/src/main/java/controllers/BaseController.java b/src/main/java/controllers/BaseController.java index 755e0ee..5460990 100644 --- a/src/main/java/controllers/BaseController.java +++ b/src/main/java/controllers/BaseController.java @@ -57,6 +57,10 @@ public class BaseController extends Controller { changeScene(SceneCode.MY_TRIPS); } + public void sharedRides() throws Exception{ + changeScene(SceneCode.SHARED_RIDES); + } + 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/Main.java b/src/main/java/controllers/Main.java index dcf364f..bf27182 100644 --- a/src/main/java/controllers/Main.java +++ b/src/main/java/controllers/Main.java @@ -4,15 +4,15 @@ import controllers.BaseController; import controllers.Controller; import javafx.application.Application; import javafx.application.Platform; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; -import model.DataManager; -import model.SceneCode; -import model.Session; +import model.*; import utils.DataManagerSerialiser; import java.io.IOException; @@ -45,11 +45,47 @@ public class Main extends Application { DataManagerSerialiser dataManagerSerialiser = new DataManagerSerialiser(); DataManager dataManager = dataManagerSerialiser.load(); this.session.setDataManager(dataManager); - } catch (IOException e){ - } catch (Exception e){ //this exception is for when the files is formatted wrong. this.session.setDataManager(new DataManager()); + Ride ride = new Ride("Nissan March", "Baby Blue", "EPU001", 2004, 5); + + Stop stop1 = new Stop("1 Avonhead Road"); + Stop stop2 = new Stop("100 Yaldhurst Road"); + Stop stop3 = new Stop("120 Maidstone Road"); + Stop stop4 = new Stop("1 University Drive"); + Stop stop5 = new Stop("1 Homestead Lane"); + + ObservableList routeList1 = FXCollections.observableArrayList(); + routeList1.add(stop1); + routeList1.add(stop4); + Route route1 = new Route("Home to University", routeList1); + + ObservableList routeList2 = FXCollections.observableArrayList(); + routeList2.addAll(stop2, stop3, stop5); + Route route2 = new Route("Friends Route", routeList2); + + boolean[] days = {false, true, true, false, true, false , false}; + + TripStop tripStop1 = new TripStop("1 Avonhead Road", "9:00"); + TripStop tripStop4 = new TripStop("1 University Drive", "9:15"); + ObservableList tripStops = FXCollections.observableArrayList(); + tripStops.addAll(tripStop1, tripStop4); + + Trip trip = new Trip("Home to Uni", tripStops, "University", ride, days, true, "30-12-2017"); + + this.session.getDataManager().addRides(ride); + + this.session.getDataManager().addStop(stop1); + this.session.getDataManager().addStop(stop2); + this.session.getDataManager().addStop(stop3); + this.session.getDataManager().addStop(stop4); + this.session.getDataManager().addStop(stop5); + + this.session.getDataManager().addRoute(route1); + this.session.getDataManager().addRoute(route2); + + this.session.getDataManager().addTrip(trip); } //set up stage diff --git a/src/main/java/controllers/MyTripsController.java b/src/main/java/controllers/MyTripsController.java index c356416..351666d 100644 --- a/src/main/java/controllers/MyTripsController.java +++ b/src/main/java/controllers/MyTripsController.java @@ -77,7 +77,11 @@ public class MyTripsController extends Controller{ if (selectedTrip.ride.getNumSeats() > seats){ parent.getSession().getDataManager().addSharedTrip(new SharedTrip(selectedTrip)); popUp(Alert.AlertType.CONFIRMATION, "SUCCESS!", "Trip has been successfully shared", "The trip can now be seen by other users when there are seats available."); - //TODO change scene + try { + changeScene(SceneCode.SHARED_RIDES); + } catch (Exception e) { + e.printStackTrace(); + } } else{ popUp(Alert.AlertType.WARNING, "WARNING!", "Error in Seats Available Input.", "You cannot share more seats than you have available (remember you need one for you to drive in)."); } diff --git a/src/main/java/controllers/SharedTripsController.java b/src/main/java/controllers/SharedTripsController.java new file mode 100644 index 0000000..2f48a0d --- /dev/null +++ b/src/main/java/controllers/SharedTripsController.java @@ -0,0 +1,38 @@ +package controllers; + +import javafx.beans.property.SimpleStringProperty; +import javafx.fxml.FXML; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import model.SharedTrip; + +import java.net.URL; +import java.util.ResourceBundle; + +/** + * Created by Gondr on 28/05/2017. + */ +public class SharedTripsController extends Controller{ + + @FXML + private TableView sharedTripsTable; + @FXML + private TableColumn tripNameColumn; + @FXML + private TableColumn directionColumn; + @FXML + private TableColumn daysColumn; + + @Override + public void runLater(){ + sharedTripsTable.setItems(parent.getSession().getDataManager().getSharedTrips()); + tripNameColumn.setCellValueFactory(p -> new SimpleStringProperty(p.getValue().name)); + directionColumn.setCellValueFactory(p -> new SimpleStringProperty(p.getValue().direction)); + daysColumn.setCellValueFactory(p -> new SimpleStringProperty(p.getValue().getDays())); + } + + @Override + public void initialize(URL location, ResourceBundle resources) { + + } +} diff --git a/src/main/java/model/SceneCode.java b/src/main/java/model/SceneCode.java index 36e640e..7f57f2c 100644 --- a/src/main/java/model/SceneCode.java +++ b/src/main/java/model/SceneCode.java @@ -15,7 +15,7 @@ public enum SceneCode { MAIN("main", false), BASE("base", false), //screens after login HOME("home"),ADD_RIDE("addride"),MY_RIDES("myrides"), ADD_STOPS("addstops"), MY_STOPS("mystops"), ADD_ROUTE("addroute"), - MY_ROUTES("myroutes"), ADD_TRIP("addtrip"), MY_TRIPS("mytrips"); + MY_ROUTES("myroutes"), ADD_TRIP("addtrip"), MY_TRIPS("mytrips"), SHARED_RIDES("sharedtrips"); private String path; private boolean loadMenu; diff --git a/src/main/java/model/SharedTrip.java b/src/main/java/model/SharedTrip.java index 520de7c..cf5711c 100644 --- a/src/main/java/model/SharedTrip.java +++ b/src/main/java/model/SharedTrip.java @@ -9,4 +9,17 @@ public class SharedTrip extends Trip { super(trip.name, trip.route, trip.direction, trip.ride, trip.days, trip.reoccur, trip.endDate); } + public String getDays(){ + String daysString = ""; + for (int i = 0; i < 7; i++){ + if (days[i] == true){ + daysString += Days.getValue(i).dayName + ", "; + } + } + if (daysString.length() != 0){ + daysString = daysString.substring(0, daysString.length() - 2); + } + return daysString; + } + } diff --git a/src/main/java/model/Trip.java b/src/main/java/model/Trip.java index 25dd263..3014265 100644 --- a/src/main/java/model/Trip.java +++ b/src/main/java/model/Trip.java @@ -28,6 +28,39 @@ public class Trip { public static int SATURDAY = 5; public static int SUNDAY = 6; + public enum Days{ + MONDAY("Monday", 0), TUESDAY("Tuesday", 1), WEDNESDAY("Wednesday", 2), THURSDAY("THURSDAY", 3), FRIDAY("Friday", 4), + SATURDAY("SATURDAY", 5), SUNDAY("SUNDAY", 6); + + public String dayName; + public int dayIndex; + + Days(String dayName, int dayIndex){ + this.dayName = dayName; + this.dayIndex = dayIndex; + } + + public static Days getValue(int dayIndex){ + switch(dayIndex){ + case 0: + return MONDAY; + case 1: + return TUESDAY; + case 2: + return WEDNESDAY; + case 3: + return THURSDAY; + case 4: + return FRIDAY; + case 5: + return SATURDAY; + case 6: + return SUNDAY; + } + return null; + } + } + public Trip(String name, ObservableList route, String direction, Ride ride, boolean[] days, boolean reoccur, String endDate){ this.name = name; this.route = route; diff --git a/src/main/resources/scenes/base.fxml b/src/main/resources/scenes/base.fxml index 182892e..8cf462d 100644 --- a/src/main/resources/scenes/base.fxml +++ b/src/main/resources/scenes/base.fxml @@ -52,6 +52,11 @@