diff --git a/pom.xml b/pom.xml
index f9f0ea2..07b9e33 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,6 +13,11 @@
org.apache.maven.plugins
maven-compiler-plugin
+
+
+ controllers.Main
+
+
1.8
1.8
@@ -48,6 +53,12 @@
1.2.5
test
+
+
+ com.google.code.gson
+ gson
+ 2.8.0
+
diff --git a/src/main/java/controllers/AddTripController.java b/src/main/java/controllers/AddTripController.java
index f5b93cf..62ca31e 100644
--- a/src/main/java/controllers/AddTripController.java
+++ b/src/main/java/controllers/AddTripController.java
@@ -61,7 +61,7 @@ public class AddTripController extends Controller{
private void addTrip() throws Exception {
boolean[] days = {mon.isSelected(), tues.isSelected(), wed.isSelected(), thur.isSelected(), fri.isSelected(),
sat.isSelected(), sun.isSelected()};
- boolean boolReoccur = reoccur.getValue() == "Yes"? true: false;
+ boolean boolReoccur = reoccur.getValue() == "Yes";
String failure = "";
if (stops.size() == 0){
failure += "You have not selected a route.\n";
@@ -70,7 +70,7 @@ public class AddTripController extends Controller{
failure += "You must select a ride (vehicle) for this trip.\n";
}
- if (failure != "") {
+ if (!failure.equals("")) {
Trip trip = new Trip(stops, direction.getValue(), ride.getValue(), days, boolReoccur, endDate.getValue().toString());
System.out.println(trip);
Optional result = popUp(Alert.AlertType.WARNING, "Warning!", "Crucial Information missing", failure, ButtonSets.YesNo);
diff --git a/src/main/java/controllers/Main.java b/src/main/java/controllers/Main.java
index 9e77951..b04d3b8 100644
--- a/src/main/java/controllers/Main.java
+++ b/src/main/java/controllers/Main.java
@@ -1,15 +1,21 @@
package controllers;
+import controllers.BaseController;
+import controllers.Controller;
import javafx.application.Application;
+import javafx.application.Platform;
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 utils.DataManagerSerialiser;
+import java.io.IOException;
import java.io.InputStream;
@@ -34,8 +40,14 @@ public class Main extends Application {
base = root;
baseController = (BaseController) loader.getController();
baseController.setParent(this);
-
this.session = new Session();
+ try{
+ DataManagerSerialiser dataManagerSerialiser = new DataManagerSerialiser();
+ DataManager dataManager = dataManagerSerialiser.load();
+ this.session.setDataManager(dataManager);
+ } catch (IOException e){
+
+ }
//set up stage
stage.setTitle("UC RSS");
@@ -43,6 +55,12 @@ public class Main extends Application {
stage.setMinWidth(600);
stage.show();
+ stage.setOnCloseRequest(e -> {
+ DataManagerSerialiser dataManagerSerialiser = new DataManagerSerialiser();
+ dataManagerSerialiser.serialise(session.getDataManager());
+ Platform.exit();
+ });
+
}
/**
@@ -89,4 +107,8 @@ public class Main extends Application {
public Stage getPrimaryStage() {
return primaryStage;
}
+
+ public static void main(String[] args) {
+ launch(args);
+ }
}
diff --git a/src/main/java/model/DataManager.java b/src/main/java/model/DataManager.java
index 07b1540..78e19c1 100644
--- a/src/main/java/model/DataManager.java
+++ b/src/main/java/model/DataManager.java
@@ -6,6 +6,7 @@ import javafx.collections.ObservableList;
import javafx.collections.ObservableSet;
import java.util.ArrayList;
+import java.util.List;
/**
* Created by Gondr on 4/04/2017.
@@ -15,10 +16,18 @@ public class DataManager {
private ObservableList stops;
private ObservableList routes;
+
+ public DataManager(List rides, List stops, List routes){
+ this.rides = FXCollections.observableArrayList(rides);
+ this.stops = FXCollections.observableArrayList(stops);
+ this.routes = FXCollections.observableArrayList(routes);
+ }
+
public DataManager(){
- rides = FXCollections.observableArrayList();
+ this(FXCollections.observableArrayList(), FXCollections.observableArrayList(), FXCollections.observableArrayList());
+ /*rides = FXCollections.observableArrayList();
stops = FXCollections.observableArrayList();
- routes = FXCollections.observableArrayList();
+ routes = FXCollections.observableArrayList();*/
}
public ObservableList getRides() {
diff --git a/src/main/java/utils/DataManagerSerialiser.java b/src/main/java/utils/DataManagerSerialiser.java
new file mode 100644
index 0000000..b47adc0
--- /dev/null
+++ b/src/main/java/utils/DataManagerSerialiser.java
@@ -0,0 +1,60 @@
+package utils;
+
+import com.google.gson.reflect.TypeToken;
+import model.DataManager;
+import model.Ride;
+import model.Route;
+import model.Stop;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.UnsupportedEncodingException;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Created by Gondr on 19/05/2017.
+ */
+public class DataManagerSerialiser extends Serialiser {
+
+ public DataManagerSerialiser(){
+
+ }
+
+ public boolean serialise(DataManager dataManager){
+ ArrayList rides = new ArrayList<>(dataManager.getRides());
+ ArrayList stops = new ArrayList<>(dataManager.getStops());
+ ArrayList routes = new ArrayList<>(dataManager.getRoutes());
+ boolean serialRidesSuccess = serialise(rides, "serialisation/rides.json");
+ boolean serialStopsSuccess = serialise(stops, "serialisation/stops.json");
+ boolean serialRoutesSuccess = serialise(routes, "serialisation/routes.json");
+ return (serialRidesSuccess && serialStopsSuccess && serialRoutesSuccess);
+ }
+
+ public DataManager load() throws IOException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
+ Reader reader = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("serialisation/rides.json"), "UTF-8");
+ ArrayList rides = gson.fromJson(reader, new TypeToken>(){}.getType());
+ reader.close();
+
+ Reader reader2 = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("serialisation/stops.json"), "UTF-8");
+ ArrayList stops = gson.fromJson(reader2, new TypeToken>(){}.getType());
+ reader2.close();
+
+ Reader reader3 = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("serialisation/routes.json"), "UTF-8");
+ ArrayList routes = gson.fromJson(reader3, new TypeToken>(){}.getType());
+ reader3.close();
+
+// Constructor c = DataManager.class.getDeclaredConstructor(List.class, List.class, List.class);
+// DataManager dataManager = (DataManager) c.newInstance(rides, stops, routes);
+// return dataManager;
+
+ return new DataManager(rides, stops, routes);
+// return new DataManager();
+ }
+
+}
diff --git a/src/main/java/utils/Serialiser.java b/src/main/java/utils/Serialiser.java
new file mode 100644
index 0000000..9fffae6
--- /dev/null
+++ b/src/main/java/utils/Serialiser.java
@@ -0,0 +1,31 @@
+package utils;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.reflect.TypeToken;
+
+import java.io.*;
+import java.lang.reflect.Type;
+import java.util.List;
+
+
+/**
+ * Created by Gondr on 19/05/2017.
+ */
+public abstract class Serialiser {
+ protected static Gson gson = new GsonBuilder().create();
+
+ protected boolean serialise(List list, String filepath){
+ try{
+ String path = getClass().getClassLoader().getResource(filepath).getPath();
+ Writer writer = new OutputStreamWriter(new FileOutputStream(path), "UTF-8");
+ gson.toJson(list, writer);
+ writer.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+ }
+
+}
diff --git a/src/main/resources/RSS_db b/src/main/resources/RSS_db
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/resources/serialisation/datamanager.json b/src/main/resources/serialisation/datamanager.json
new file mode 100644
index 0000000..e940b44
--- /dev/null
+++ b/src/main/resources/serialisation/datamanager.json
@@ -0,0 +1 @@
+{"rides":[],"stops":[{"address":"a"}],"routes":[]}
\ No newline at end of file
diff --git a/src/main/resources/serialisation/rides.json b/src/main/resources/serialisation/rides.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/src/main/resources/serialisation/rides.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/src/main/resources/serialisation/routes.json b/src/main/resources/serialisation/routes.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/src/main/resources/serialisation/routes.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/src/main/resources/serialisation/stops.json b/src/main/resources/serialisation/stops.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/src/main/resources/serialisation/stops.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/target/classes/RSS_db b/target/classes/RSS_db
deleted file mode 100644
index e69de29..0000000
diff --git a/target/classes/controllers/AddTripController$1.class b/target/classes/controllers/AddTripController$1.class
index b7eb55d..aad0f88 100644
Binary files a/target/classes/controllers/AddTripController$1.class and b/target/classes/controllers/AddTripController$1.class differ
diff --git a/target/classes/controllers/AddTripController$2.class b/target/classes/controllers/AddTripController$2.class
index c544c48..5b62f4f 100644
Binary files a/target/classes/controllers/AddTripController$2.class and b/target/classes/controllers/AddTripController$2.class differ
diff --git a/target/classes/controllers/AddTripController.class b/target/classes/controllers/AddTripController.class
index e8ce867..0f54883 100644
Binary files a/target/classes/controllers/AddTripController.class and b/target/classes/controllers/AddTripController.class differ
diff --git a/target/classes/controllers/Main.class b/target/classes/controllers/Main.class
index 78f526d..09c1a98 100644
Binary files a/target/classes/controllers/Main.class and b/target/classes/controllers/Main.class differ
diff --git a/target/classes/model/DataManager.class b/target/classes/model/DataManager.class
index fce9a1e..9487de1 100644
Binary files a/target/classes/model/DataManager.class and b/target/classes/model/DataManager.class differ
diff --git a/target/classes/model/Trip.class b/target/classes/model/Trip.class
index 474c002..f52b0f7 100644
Binary files a/target/classes/model/Trip.class and b/target/classes/model/Trip.class differ
diff --git a/target/classes/serialisation/datamanager.json b/target/classes/serialisation/datamanager.json
new file mode 100644
index 0000000..e940b44
--- /dev/null
+++ b/target/classes/serialisation/datamanager.json
@@ -0,0 +1 @@
+{"rides":[],"stops":[{"address":"a"}],"routes":[]}
\ No newline at end of file
diff --git a/target/classes/serialisation/rides.json b/target/classes/serialisation/rides.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/target/classes/serialisation/rides.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/target/classes/serialisation/routes.json b/target/classes/serialisation/routes.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/target/classes/serialisation/routes.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/target/classes/serialisation/stops.json b/target/classes/serialisation/stops.json
new file mode 100644
index 0000000..d67cb44
--- /dev/null
+++ b/target/classes/serialisation/stops.json
@@ -0,0 +1 @@
+[{"address":"a"},{"address":"b"}]
\ No newline at end of file
diff --git a/target/classes/utils/DataManagerSerialiser$1.class b/target/classes/utils/DataManagerSerialiser$1.class
new file mode 100644
index 0000000..9d77122
Binary files /dev/null and b/target/classes/utils/DataManagerSerialiser$1.class differ
diff --git a/target/classes/utils/DataManagerSerialiser$2.class b/target/classes/utils/DataManagerSerialiser$2.class
new file mode 100644
index 0000000..cfbcec8
Binary files /dev/null and b/target/classes/utils/DataManagerSerialiser$2.class differ
diff --git a/target/classes/utils/DataManagerSerialiser$3.class b/target/classes/utils/DataManagerSerialiser$3.class
new file mode 100644
index 0000000..3b1ef6b
Binary files /dev/null and b/target/classes/utils/DataManagerSerialiser$3.class differ
diff --git a/target/classes/utils/DataManagerSerialiser.class b/target/classes/utils/DataManagerSerialiser.class
new file mode 100644
index 0000000..a34c6af
Binary files /dev/null and b/target/classes/utils/DataManagerSerialiser.class differ
diff --git a/target/classes/utils/Serialiser.class b/target/classes/utils/Serialiser.class
new file mode 100644
index 0000000..a68fc4e
Binary files /dev/null and b/target/classes/utils/Serialiser.class differ
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..c706c79
--- /dev/null
+++ b/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri May 19 15:51:59 NZST 2017
+version=1.0-SNAPSHOT
+groupId=ride-sharing-system
+artifactId=ride-sharing-system
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..daa4906
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,25 @@
+controllers\HomeController.class
+controllers\Main.class
+controllers\MyStopsController.class
+controllers\AddTripController$2.class
+model\Session.class
+model\Ride.class
+model\Route.class
+model\TripStop.class
+controllers\MyRidesController.class
+controllers\AddRouteController.class
+controllers\AddRideController.class
+model\ButtonSets.class
+model\Trip.class
+controllers\BaseController.class
+model\SceneCode.class
+controllers\AddTripController.class
+model\DataManager.class
+controllers\MyRoutesController.class
+controllers\AddStopsController.class
+controllers\MyRoutesController$1.class
+controllers\MainController.class
+model\Stop.class
+controllers\AddTripController$1.class
+controllers\Controller.class
+model\ButtonTypes.class
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..6f10edb
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,22 @@
+D:\Programming\Workspace\SENG301\src\main\java\controllers\AddTripController.java
+D:\Programming\Workspace\SENG301\src\main\java\controllers\HomeController.java
+D:\Programming\Workspace\SENG301\src\main\java\model\Ride.java
+D:\Programming\Workspace\SENG301\src\main\java\model\Stop.java
+D:\Programming\Workspace\SENG301\src\main\java\controllers\MyRoutesController.java
+D:\Programming\Workspace\SENG301\src\main\java\controllers\AddStopsController.java
+D:\Programming\Workspace\SENG301\src\main\java\model\Session.java
+D:\Programming\Workspace\SENG301\src\main\java\controllers\AddRideController.java
+D:\Programming\Workspace\SENG301\src\main\java\controllers\MyRidesController.java
+D:\Programming\Workspace\SENG301\src\main\java\controllers\BaseController.java
+D:\Programming\Workspace\SENG301\src\main\java\model\Trip.java
+D:\Programming\Workspace\SENG301\src\main\java\model\DataManager.java
+D:\Programming\Workspace\SENG301\src\main\java\controllers\Main.java
+D:\Programming\Workspace\SENG301\src\main\java\model\TripStop.java
+D:\Programming\Workspace\SENG301\src\main\java\controllers\Controller.java
+D:\Programming\Workspace\SENG301\src\main\java\controllers\MainController.java
+D:\Programming\Workspace\SENG301\src\main\java\model\ButtonTypes.java
+D:\Programming\Workspace\SENG301\src\main\java\model\Route.java
+D:\Programming\Workspace\SENG301\src\main\java\controllers\AddRouteController.java
+D:\Programming\Workspace\SENG301\src\main\java\model\ButtonSets.java
+D:\Programming\Workspace\SENG301\src\main\java\controllers\MyStopsController.java
+D:\Programming\Workspace\SENG301\src\main\java\model\SceneCode.java
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..e212cb2
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1,4 @@
+RunCucumberTests.class
+steps\PlaceholderSteps.class
+model\DataManagerTest.class
+controllers\MainControllerTest.class
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..7095d58
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1,4 @@
+D:\Programming\Workspace\SENG301\src\test\java\steps\PlaceholderSteps.java
+D:\Programming\Workspace\SENG301\src\test\java\RunCucumberTests.java
+D:\Programming\Workspace\SENG301\src\test\java\model\DataManagerTest.java
+D:\Programming\Workspace\SENG301\src\test\java\controllers\MainControllerTest.java
diff --git a/target/ride-sharing-system-1.0-SNAPSHOT.jar b/target/ride-sharing-system-1.0-SNAPSHOT.jar
new file mode 100644
index 0000000..7b7c3f0
Binary files /dev/null and b/target/ride-sharing-system-1.0-SNAPSHOT.jar differ
diff --git a/target/surefire-reports/TEST-controllers.MainControllerTest.xml b/target/surefire-reports/TEST-controllers.MainControllerTest.xml
new file mode 100644
index 0000000..e095694
--- /dev/null
+++ b/target/surefire-reports/TEST-controllers.MainControllerTest.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/surefire-reports/TEST-model.DataManagerTest.xml b/target/surefire-reports/TEST-model.DataManagerTest.xml
new file mode 100644
index 0000000..8c2e008
--- /dev/null
+++ b/target/surefire-reports/TEST-model.DataManagerTest.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/surefire-reports/controllers.MainControllerTest.txt b/target/surefire-reports/controllers.MainControllerTest.txt
new file mode 100644
index 0000000..b9dc00e
--- /dev/null
+++ b/target/surefire-reports/controllers.MainControllerTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: controllers.MainControllerTest
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.061 sec
diff --git a/target/surefire-reports/model.DataManagerTest.txt b/target/surefire-reports/model.DataManagerTest.txt
new file mode 100644
index 0000000..f55fb89
--- /dev/null
+++ b/target/surefire-reports/model.DataManagerTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: model.DataManagerTest
+-------------------------------------------------------------------------------
+Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.05 sec