From 13fd32290669a6a3a21d9cc9d619d0f040fa170f Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Mon, 20 Feb 2017 22:45:16 +0100
Subject: [PATCH] Pad sync fixes

---
 .../tobias/playpad/server/project/Pad.scala   |  2 --
 .../project/loader/json/PathLoader.scala      |  2 +-
 .../server/project/loader/sql/PadLoader.scala |  3 +--
 .../server/project/saver/json/PadSaver.scala  |  1 -
 .../server/project/saver/sql/PadSaver.scala   |  1 -
 .../server/project/utils/JsonDef.scala        |  1 -
 .../playpad/server/project/utils/SqlDef.scala |  1 -
 .../project/sync/ProjectSyncHandler.scala     |  7 ++++-
 .../sync/listener/pad/PadAddListener.scala    | 26 +++++++++++++++++++
 .../sync/listener/pad/PadRemoveListener.scala | 21 +++++++++++++++
 .../listener/page/PageRemoveListener.scala    |  4 +--
 11 files changed, 57 insertions(+), 12 deletions(-)
 create mode 100644 src/main/scala/de/tobias/playpad/server/server/project/sync/listener/pad/PadAddListener.scala
 create mode 100644 src/main/scala/de/tobias/playpad/server/server/project/sync/listener/pad/PadRemoveListener.scala

diff --git a/src/main/scala/de/tobias/playpad/server/project/Pad.scala b/src/main/scala/de/tobias/playpad/server/project/Pad.scala
index 6c88a74..abf66a7 100644
--- a/src/main/scala/de/tobias/playpad/server/project/Pad.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/Pad.scala
@@ -9,9 +9,7 @@ class Pad() {
 
 	var id: UUID = UUID.randomUUID()
 	var name: String = _
-
 	var position: Int = _
-	var pageIndex: Int = _
 
 	var paths: List[Path] = List()
 
diff --git a/src/main/scala/de/tobias/playpad/server/project/loader/json/PathLoader.scala b/src/main/scala/de/tobias/playpad/server/project/loader/json/PathLoader.scala
index df1b32e..520f8e0 100644
--- a/src/main/scala/de/tobias/playpad/server/project/loader/json/PathLoader.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/loader/json/PathLoader.scala
@@ -22,7 +22,7 @@ class PathLoader {
 			path.path = json.get(PATH_PATH).getAsString
 			path.pad = pad
 
-			pad
+			path
 		}).toList
 		paths
 	}
diff --git a/src/main/scala/de/tobias/playpad/server/project/loader/sql/PadLoader.scala b/src/main/scala/de/tobias/playpad/server/project/loader/sql/PadLoader.scala
index fb33d4c..19e0c13 100644
--- a/src/main/scala/de/tobias/playpad/server/project/loader/sql/PadLoader.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/loader/sql/PadLoader.scala
@@ -23,10 +23,9 @@ class PadLoader(val connection: Connection) {
 			pad.id = UUID.fromString(result.getString(PAD_ID))
 			pad.name = result.getString(PAD_NAME)
 			pad.position = result.getInt(PAD_POSITION)
-			pad.pageIndex = result.getInt(PAD_PAGE)
 
 			val pathLoader = new PathLoader(connection)
-			pad.paths = pathLoader.load(pad))
+			pad.paths = pathLoader.load(pad)
 
 			pad.page = page
 			pads = pad :: pads
diff --git a/src/main/scala/de/tobias/playpad/server/project/saver/json/PadSaver.scala b/src/main/scala/de/tobias/playpad/server/project/saver/json/PadSaver.scala
index 39a62df..c7c0a2b 100644
--- a/src/main/scala/de/tobias/playpad/server/project/saver/json/PadSaver.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/saver/json/PadSaver.scala
@@ -14,7 +14,6 @@ class PadSaver {
 		jsonObject.addProperty(PAD_ID, pad.id.toString)
 		jsonObject.addProperty(PAD_NAME, pad.name)
 		jsonObject.addProperty(PAD_POSITION, pad.position)
-		jsonObject.addProperty(PAD_PAGE, pad.pageIndex)
 
 		val pathSaver = new PathSaver()
 		val pathArray = new JsonArray()
diff --git a/src/main/scala/de/tobias/playpad/server/project/saver/sql/PadSaver.scala b/src/main/scala/de/tobias/playpad/server/project/saver/sql/PadSaver.scala
index 1d998a3..47a330a 100644
--- a/src/main/scala/de/tobias/playpad/server/project/saver/sql/PadSaver.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/saver/sql/PadSaver.scala
@@ -13,7 +13,6 @@ class PadSaver(val connection: Connection) {
 	def save(pad: Pad): Unit = {
 		SqlHelper.insertOrUpdate(connection, PAD, pad.id, PAD_NAME, pad.name)
 		SqlHelper.insertOrUpdate(connection, PAD, pad.id, PAD_POSITION, pad.position)
-		SqlHelper.insertOrUpdate(connection, PAD, pad.id, PAD_PAGE, pad.pageIndex)
 		SqlHelper.insertOrUpdate(connection, PAD, pad.id, PAD_PAGE_REF, pad.page.id)
 
 		val pathSaver = new PathSaver(connection)
diff --git a/src/main/scala/de/tobias/playpad/server/project/utils/JsonDef.scala b/src/main/scala/de/tobias/playpad/server/project/utils/JsonDef.scala
index 3d869a1..2c75ffa 100644
--- a/src/main/scala/de/tobias/playpad/server/project/utils/JsonDef.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/utils/JsonDef.scala
@@ -17,7 +17,6 @@ object JsonDef {
 	val PAD_ID = "id"
 	val PAD_NAME = "name"
 	val PAD_POSITION = "position"
-	val PAD_PAGE = "page"
 	val PAD_PATHS = "paths"
 
 	val PATH_ID = "id"
diff --git a/src/main/scala/de/tobias/playpad/server/project/utils/SqlDef.scala b/src/main/scala/de/tobias/playpad/server/project/utils/SqlDef.scala
index 7b55076..29d701c 100644
--- a/src/main/scala/de/tobias/playpad/server/project/utils/SqlDef.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/utils/SqlDef.scala
@@ -20,7 +20,6 @@ object SqlDef {
 	val PAD_ID = "id"
 	val PAD_NAME = "name"
 	val PAD_POSITION = "position"
-	val PAD_PAGE = "page"
 	val PAD_PAGE_REF = "page_id"
 
 	val PATH = "Path"
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/sync/ProjectSyncHandler.scala b/src/main/scala/de/tobias/playpad/server/server/project/sync/ProjectSyncHandler.scala
index 543e525..f76a22d 100644
--- a/src/main/scala/de/tobias/playpad/server/server/project/sync/ProjectSyncHandler.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/project/sync/ProjectSyncHandler.scala
@@ -6,6 +6,7 @@ import com.google.gson.{JsonObject, JsonParser}
 import com.j256.ormlite.dao.Dao
 import de.tobias.playpad.server.account
 import de.tobias.playpad.server.account.Account
+import de.tobias.playpad.server.server.project.sync.listener.pad.{PadAddListener, PadRemoveListener}
 import de.tobias.playpad.server.server.project.sync.listener.page.{PageAddListener, PageRemoveListener, PageUpdateListener}
 import de.tobias.playpad.server.server.project.sync.listener.project.{ProjectAddListener, ProjectRemoveListener, ProjectUpdateListener}
 import org.eclipse.jetty.websocket.api.Session
@@ -30,7 +31,11 @@ import scala.collection.{Map, mutable}
 
 		"page-add" -> new PageAddListener(),
 		"page-update" -> new PageUpdateListener(),
-		"page-rm" -> new PageRemoveListener()
+		"page-rm" -> new PageRemoveListener(),
+
+		"pad-add" -> new PadAddListener(),
+		//"page-update" -> new PageUpdateListener(),
+		"pad-rm" -> new PadRemoveListener()
 	)
 
 	@OnWebSocketConnect def onConnect(serverSession: Session): Unit = {
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/pad/PadAddListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/pad/PadAddListener.scala
new file mode 100644
index 0000000..c835bb0
--- /dev/null
+++ b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/pad/PadAddListener.scala
@@ -0,0 +1,26 @@
+package de.tobias.playpad.server.server.project.sync.listener.pad
+
+import java.sql.Connection
+import java.util.UUID
+
+import com.google.gson.JsonObject
+import de.tobias.playpad.server.account.Session
+import de.tobias.playpad.server.project.utils.SqlDef
+import de.tobias.playpad.server.server.SqlHelper
+import de.tobias.playpad.server.server.project.sync.listener.Listener
+
+/**
+  * Created by tobias on 19.02.17.
+  */
+class PadAddListener extends Listener {
+	override def onChange(json: JsonObject, connection: Connection, session: Session): Unit = {
+		val padId = UUID.fromString(json.get("id").getAsString)
+		val pageId = UUID.fromString(json.get("page").getAsString)
+		val padName = json.get("name").getAsString
+		val padPosition= json.get("position").getAsInt
+
+		SqlHelper.insertOrUpdate(connection, SqlDef.PAD, padId, SqlDef.PAD_PAGE_REF, pageId)
+		SqlHelper.insertOrUpdate(connection, SqlDef.PAD, padId, SqlDef.PAD_NAME, padName)
+		SqlHelper.insertOrUpdate(connection, SqlDef.PAD, padId, SqlDef.PAD_POSITION, padPosition)
+	}
+}
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/pad/PadRemoveListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/pad/PadRemoveListener.scala
new file mode 100644
index 0000000..6f31c8f
--- /dev/null
+++ b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/pad/PadRemoveListener.scala
@@ -0,0 +1,21 @@
+package de.tobias.playpad.server.server.project.sync.listener.pad
+
+import java.sql.Connection
+import java.util.UUID
+
+import com.google.gson.JsonObject
+import de.tobias.playpad.server.account.Session
+import de.tobias.playpad.server.project.utils.SqlDef
+import de.tobias.playpad.server.server.SqlHelper
+import de.tobias.playpad.server.server.project.sync.listener.Listener
+
+/**
+  * Created by tobias on 19.02.17.
+  */
+class PadRemoveListener extends Listener {
+	override def onChange(json: JsonObject, connection: Connection, session: Session): Unit = {
+		val padId = UUID.fromString(json.get("id").getAsString)
+
+		SqlHelper.delete(connection, SqlDef.PAD, padId)
+	}
+}
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/page/PageRemoveListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/page/PageRemoveListener.scala
index 5b6c791..c9df625 100644
--- a/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/page/PageRemoveListener.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/page/PageRemoveListener.scala
@@ -14,8 +14,8 @@ import de.tobias.playpad.server.server.project.sync.listener.Listener
   */
 class PageRemoveListener extends Listener {
 	override def onChange(json: JsonObject, connection: Connection, session: Session): Unit = {
-		val projectId = UUID.fromString(json.get("id").getAsString)
+		val pageId = UUID.fromString(json.get("id").getAsString)
 
-		SqlHelper.delete(connection, SqlDef.PAGE, projectId)
+		SqlHelper.delete(connection, SqlDef.PAGE, pageId)
 	}
 }
-- 
GitLab