Refactored Rides to be only for the user
This commit is contained in:
@@ -5,6 +5,7 @@ import javafx.scene.Parent;
|
|||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import model.SceneCode;
|
import model.SceneCode;
|
||||||
|
import model.Session;
|
||||||
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
@@ -71,7 +72,7 @@ public class BaseController extends Controller {
|
|||||||
base.getChildren().remove(base.getChildren().size() - 1);
|
base.getChildren().remove(base.getChildren().size() - 1);
|
||||||
}
|
}
|
||||||
base.add(parent1, 1, 0);
|
base.add(parent1, 1, 0);
|
||||||
loggedInAs.setText(String.format("Logged in as %s", parent.getSession().getUserCode()));
|
loggedInAs.setText(String.format("Logged in as %d", Session.session.getUser().getStudentNumber()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void logout() throws Exception {
|
public void logout() throws Exception {
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ public class Main extends Application {
|
|||||||
} catch (Exception e){
|
} catch (Exception e){
|
||||||
//this exception is for when the files is formatted wrong.
|
//this exception is for when the files is formatted wrong.
|
||||||
this.session.setDataManager(new DataManager());
|
this.session.setDataManager(new DataManager());
|
||||||
|
Session.session.setUser(new User(79984862, null, null, null, null, null, null));
|
||||||
Ride ride = new Ride("Nissan March", "Baby Blue", "EPU001", 2004, 5);
|
Ride ride = new Ride("Nissan March", "Baby Blue", "EPU001", 2004, 5);
|
||||||
|
|
||||||
Stop stop1 = new Stop("1 Avonhead Road");
|
Stop stop1 = new Stop("1 Avonhead Road");
|
||||||
|
|||||||
@@ -30,14 +30,18 @@ public class MainController extends Controller{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean validateLogin(String user, String pass){
|
public boolean validateLogin(String user, String pass){
|
||||||
|
if (Session.session.getDataManager().getUsers().get(user) != null) {
|
||||||
if (Session.session.getDataManager().getUsers().get(user).checkPassword(pass) && User.AccountType.getValueOf(accountType.getValue()) == User.AccountType.PASSENGER) {
|
if (Session.session.getDataManager().getUsers().get(user).checkPassword(pass) && User.AccountType.getValueOf(accountType.getValue()) == User.AccountType.PASSENGER) {
|
||||||
Session.session.setUser(Session.session.getDataManager().getUsers().get(user));
|
Session.session.setUser(Session.session.getDataManager().getUsers().get(user));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (Session.session.getDataManager().getDrivers().get(user) != null) {
|
||||||
if (Session.session.getDataManager().getDrivers().get(user).checkPassword(pass) && User.AccountType.getValueOf(accountType.getValue()) == User.AccountType.DRIVER) {
|
if (Session.session.getDataManager().getDrivers().get(user).checkPassword(pass) && User.AccountType.getValueOf(accountType.getValue()) == User.AccountType.DRIVER) {
|
||||||
Session.session.setUser(Session.session.getDataManager().getDrivers().get(user));
|
Session.session.setUser(Session.session.getDataManager().getDrivers().get(user));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ public class SharedTripsController extends Controller{
|
|||||||
//book button
|
//book button
|
||||||
Button bookRide = new Button("Book Ride");
|
Button bookRide = new Button("Book Ride");
|
||||||
bookRide.setOnAction(e->{
|
bookRide.setOnAction(e->{
|
||||||
trip.bookSeat(parent.getSession().getUserCode());
|
trip.bookSeat(parent.getSession().session.getUser());
|
||||||
tripDetails.close();
|
tripDetails.close();
|
||||||
search();
|
search();
|
||||||
popUp(Alert.AlertType.CONFIRMATION, "Success!", "You have Successfully booked a ride!", "The ride has been successfully booked and can be viewed in your booked rides.");
|
popUp(Alert.AlertType.CONFIRMATION, "Success!", "You have Successfully booked a ride!", "The ride has been successfully booked and can be viewed in your booked rides.");
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import java.util.Map;
|
|||||||
* Created by Gondr on 4/04/2017.
|
* Created by Gondr on 4/04/2017.
|
||||||
*/
|
*/
|
||||||
public class DataManager {
|
public class DataManager {
|
||||||
private ObservableList<Ride> rides;
|
private Map<String, ObservableList<Ride>> rides;
|
||||||
private ObservableList<Stop> stops;
|
private ObservableList<Stop> stops;
|
||||||
private ObservableList<Route> routes;
|
private ObservableList<Route> routes;
|
||||||
private ObservableList<Trip> trips;
|
private ObservableList<Trip> trips;
|
||||||
@@ -23,8 +23,8 @@ public class DataManager {
|
|||||||
private Map<String, Driver> drivers;//seperated from users as they are two different types of accounts
|
private Map<String, Driver> drivers;//seperated from users as they are two different types of accounts
|
||||||
private Map<String, List<String>> notifications; //indexed by user name
|
private Map<String, List<String>> notifications; //indexed by user name
|
||||||
|
|
||||||
public DataManager(List rides, List stops, List routes, List trips, List sharedTrips, Map users, Map drivers, Map<String, List<String>> notifications){
|
public DataManager(Map<String, List<Ride>> rides, List stops, List routes, List trips, List sharedTrips, Map users, Map drivers, Map<String, List<String>> notifications){
|
||||||
this.rides = FXCollections.observableArrayList(rides);
|
this.rides = convertRideMapToObserver(rides);
|
||||||
this.stops = FXCollections.observableArrayList(stops);
|
this.stops = FXCollections.observableArrayList(stops);
|
||||||
this.routes = FXCollections.observableArrayList(routes);
|
this.routes = FXCollections.observableArrayList(routes);
|
||||||
this.trips = FXCollections.observableArrayList(trips);
|
this.trips = FXCollections.observableArrayList(trips);
|
||||||
@@ -35,23 +35,48 @@ public class DataManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public DataManager(){
|
public DataManager(){
|
||||||
this(FXCollections.observableArrayList(), FXCollections.observableArrayList(), FXCollections.observableArrayList(), FXCollections.observableArrayList(), FXCollections.observableArrayList(), new HashMap<String, User>(), new HashMap<String, Driver>(), new HashMap<String, List<String>>());
|
this(new HashMap<String, List<Ride>>(), FXCollections.observableArrayList(), FXCollections.observableArrayList(), FXCollections.observableArrayList(), FXCollections.observableArrayList(), new HashMap<String, User>(), new HashMap<String, Driver>(), new HashMap<String, List<String>>());
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, ObservableList<Ride>> convertRideMapToObserver(Map<String, List<Ride>> rides){
|
||||||
|
HashMap<String, ObservableList<Ride>> ob = new HashMap<>();
|
||||||
|
for (String key: rides.keySet()){
|
||||||
|
ob.put(key, FXCollections.observableArrayList(rides.get(key)));
|
||||||
|
}
|
||||||
|
return ob;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, List<Ride>> convertRideMapToList(Map<String, ObservableList<Ride>> rides){
|
||||||
|
HashMap<String, List<Ride>> ob = new HashMap<>();
|
||||||
|
for (String key: rides.keySet()){
|
||||||
|
ob.put(key, new ArrayList<Ride>(rides.get(key)));
|
||||||
|
}
|
||||||
|
return ob;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, List<Ride>> rideMapSerialised(){
|
||||||
|
return convertRideMapToList(rides);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObservableList<Ride> getRides() {
|
public ObservableList<Ride> getRides() {
|
||||||
return rides;
|
return rides.get(Session.session.getUser().getID());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addRides(Ride ride){
|
public void addRides(Ride ride){
|
||||||
rides.add(ride);
|
rides.putIfAbsent(Session.session.getUser().getID(), FXCollections.observableArrayList());
|
||||||
|
rides.get(Session.session.getUser().getID()).add(ride);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeRide(Ride ride){
|
public void removeRide(Ride ride){
|
||||||
rides.remove(ride);
|
if (rides.get(Session.session.getUser().getID()) != null) {
|
||||||
|
rides.get(Session.session.getUser().getID()).remove(ride);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeRide(int i){
|
public void removeRide(int i){
|
||||||
rides.remove(i);
|
if (rides.get(Session.session.getUser().getID()) != null) {
|
||||||
|
rides.get(Session.session.getUser().getID()).remove(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObservableList<Stop> getStops() {
|
public ObservableList<Stop> getStops() {
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ public class SharedTrip extends Trip {
|
|||||||
|
|
||||||
private int seatsAvailable;
|
private int seatsAvailable;
|
||||||
|
|
||||||
private String[] userBookings;
|
private User[] userBookings;
|
||||||
|
|
||||||
public SharedTrip (Trip trip, int seatsAvailable){
|
public SharedTrip (Trip trip, int seatsAvailable){
|
||||||
super(trip.name, trip.route, trip.direction, trip.ride, trip.days, trip.reoccur, trip.endDate);
|
super(trip.name, trip.route, trip.direction, trip.ride, trip.days, trip.reoccur, trip.endDate);
|
||||||
userBookings = new String[this.ride.getNumSeats() - 1];
|
userBookings = new User[this.ride.getNumSeats() - 1];
|
||||||
this.seatsAvailable = seatsAvailable;
|
this.seatsAvailable = seatsAvailable;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@ public class SharedTrip extends Trip {
|
|||||||
return seatsAvailable;
|
return seatsAvailable;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void bookSeat(String user){
|
public void bookSeat(User user){
|
||||||
userBookings[ride.getNumSeats() - seatsAvailable - 1] = user;
|
userBookings[ride.getNumSeats() - seatsAvailable - 1] = user;
|
||||||
seatsAvailable -= 1;
|
seatsAvailable -= 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ public class User {
|
|||||||
protected AccountType accountType;
|
protected AccountType accountType;
|
||||||
transient protected Image photo;
|
transient protected Image photo;
|
||||||
private byte[] image;
|
private byte[] image;
|
||||||
|
protected String ID;
|
||||||
|
|
||||||
public enum AccountType{
|
public enum AccountType{
|
||||||
PASSENGER("Passenger"), DRIVER("Driver");
|
PASSENGER("Passenger"), DRIVER("Driver");
|
||||||
@@ -42,6 +43,7 @@ public class User {
|
|||||||
public User(int studentNumber, String email, String password, String address, String homephone, String mobilephone,
|
public User(int studentNumber, String email, String password, String address, String homephone, String mobilephone,
|
||||||
Image photo){
|
Image photo){
|
||||||
this.studentNumber = studentNumber;
|
this.studentNumber = studentNumber;
|
||||||
|
this.ID = String.valueOf(studentNumber);
|
||||||
this.email = email;
|
this.email = email;
|
||||||
this.password = password;
|
this.password = password;
|
||||||
this.address = address;
|
this.address = address;
|
||||||
@@ -60,6 +62,10 @@ public class User {
|
|||||||
return studentNumber;
|
return studentNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getID(){
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
public void serialise(){
|
public void serialise(){
|
||||||
try {
|
try {
|
||||||
BufferedImage bi = SwingFXUtils.fromFXImage(photo, null);
|
BufferedImage bi = SwingFXUtils.fromFXImage(photo, null);
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ public class DataManagerSerialiser extends Serialiser {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public boolean serialise(DataManager dataManager){
|
public boolean serialise(DataManager dataManager){
|
||||||
ArrayList<Ride> rides = new ArrayList<>(dataManager.getRides());
|
//ArrayList<Ride> rides = new ArrayList<>(dataManager.getRides());
|
||||||
|
Map<String, List<Ride>> rides = dataManager.rideMapSerialised();
|
||||||
ArrayList<Stop> stops = new ArrayList<>(dataManager.getStops());
|
ArrayList<Stop> stops = new ArrayList<>(dataManager.getStops());
|
||||||
ArrayList<Route> routes = new ArrayList<>(dataManager.getRoutes());
|
ArrayList<Route> routes = new ArrayList<>(dataManager.getRoutes());
|
||||||
ArrayList<Trip> trips = new ArrayList<>(dataManager.getTrips());
|
ArrayList<Trip> trips = new ArrayList<>(dataManager.getTrips());
|
||||||
@@ -38,7 +39,7 @@ public class DataManagerSerialiser extends Serialiser {
|
|||||||
boolean serialSharedTripsSuccess = serialiseSharedTrips(sharedTrips, "serialisation/sharedtrips.json");
|
boolean serialSharedTripsSuccess = serialiseSharedTrips(sharedTrips, "serialisation/sharedtrips.json");
|
||||||
boolean serialUsersSuccess = serialiseUsers(dataManager.getUsers(), "serialisation/users.json");
|
boolean serialUsersSuccess = serialiseUsers(dataManager.getUsers(), "serialisation/users.json");
|
||||||
boolean serialDriversSuccess = serialiseDrivers(dataManager.getDrivers(), "serialisation/drivers.json");
|
boolean serialDriversSuccess = serialiseDrivers(dataManager.getDrivers(), "serialisation/drivers.json");
|
||||||
boolean serialNotificationsSuccess = serialiseNotifications(dataManager.getNotifications(), "serialisation/notification.json");
|
boolean serialNotificationsSuccess = serialiseNotifications(dataManager.getNotifications(), "serialisation/notifications.json");
|
||||||
return (serialRidesSuccess && serialStopsSuccess && serialRoutesSuccess && serialTripsSuccess && serialSharedTripsSuccess && serialUsersSuccess && serialDriversSuccess && serialNotificationsSuccess);
|
return (serialRidesSuccess && serialStopsSuccess && serialRoutesSuccess && serialTripsSuccess && serialSharedTripsSuccess && serialUsersSuccess && serialDriversSuccess && serialNotificationsSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,7 +166,7 @@ public class DataManagerSerialiser extends Serialiser {
|
|||||||
*/
|
*/
|
||||||
public DataManager load() throws IOException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
|
public DataManager load() throws IOException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
|
||||||
Reader reader = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("serialisation/rides.json"), "UTF-8");
|
Reader reader = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("serialisation/rides.json"), "UTF-8");
|
||||||
ArrayList<Ride> rides = gson.fromJson(reader, new TypeToken<ArrayList<Ride>>(){}.getType());
|
HashMap<String, List<Ride>> rides = gson.fromJson(reader, new TypeToken<HashMap<String, ArrayList<Ride>>>(){}.getType());
|
||||||
reader.close();
|
reader.close();
|
||||||
|
|
||||||
Reader reader2 = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("serialisation/stops.json"), "UTF-8");
|
Reader reader2 = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("serialisation/stops.json"), "UTF-8");
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.google.gson.reflect.TypeToken;
|
|||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -28,4 +29,17 @@ public abstract class Serialiser {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean serialise(Map map, String filepath){
|
||||||
|
try{
|
||||||
|
String path = getClass().getClassLoader().getResource(filepath).getPath();
|
||||||
|
Writer writer = new OutputStreamWriter(new FileOutputStream(path), "UTF-8");
|
||||||
|
gson.toJson(map, writer);
|
||||||
|
writer.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
@@ -1 +1 @@
|
|||||||
[{"model":"Nissan March","colour":"Baby Blue","licensePlate":"EPU001","year":2004,"numSeats":5}]
|
{"79984862":[{"model":"Nissan March","colour":"Baby Blue","licensePlate":"EPU001","year":2004,"numSeats":5}]}
|
||||||
@@ -1 +1 @@
|
|||||||
[{"seatsAvailable":0,"userBookings":["a","a","a","a"],"serialisedRoute":[{"serialiseTime":"9:00","serialiseName":"1 Avonhead Road"},{"serialiseTime":"9:15","serialiseName":"1 University Drive"}],"direction":"University","ride":{"model":"Nissan March","colour":"Baby Blue","licensePlate":"EPU001","year":2004,"numSeats":5},"days":[false,true,true,false,true,false,false],"reoccur":true,"endDate":"30-12-2017","name":"Home to Uni"}]
|
[]
|
||||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user