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