From fd1721d0d26e2893ee15d67a0b22269fd8122662 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Tue, 21 Feb 2017 22:43:12 +0100 Subject: [PATCH] Add path add listener, add paths to pad --- .../tobias/playpad/server/project/Pad.scala | 1 + .../server/project/saver/json/PadSaver.scala | 10 ++++---- .../server/project/utils/JsonDef.scala | 1 + .../project/sync/ProjectSyncHandler.scala | 7 ++++-- .../sync/listener/path/PathAddListener.scala | 24 +++++++++++++++++++ 5 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 src/main/scala/de/tobias/playpad/server/server/project/sync/listener/path/PathAddListener.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 abf66a7..9945e9f 100644 --- a/src/main/scala/de/tobias/playpad/server/project/Pad.scala +++ b/src/main/scala/de/tobias/playpad/server/project/Pad.scala @@ -11,6 +11,7 @@ class Pad() { var name: String = _ var position: Int = _ + var contentType: String = _ var paths: List[Path] = List() var page: Page = _ 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 c7c0a2b..3a98a38 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 @@ -11,14 +11,16 @@ class PadSaver { def save(pad: Pad): JsonElement = { val jsonObject = new JsonObject() - jsonObject.addProperty(PAD_ID, pad.id.toString) - jsonObject.addProperty(PAD_NAME, pad.name) - jsonObject.addProperty(PAD_POSITION, pad.position) - val pathSaver = new PathSaver() val pathArray = new JsonArray() pad.paths.foreach(path => pathArray.add(pathSaver.save(path))) + jsonObject.addProperty(PAD_ID, pad.id.toString) + jsonObject.addProperty(PAD_NAME, pad.name) + jsonObject.addProperty(PAD_POSITION, pad.position) + jsonObject.addProperty(PAD_CONTENT_TYPE, pad.contentType) + jsonObject.add(PAD_PATHS, pathArray) + jsonObject } } 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 2c75ffa..5bcefb1 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,6 +17,7 @@ object JsonDef { val PAD_ID = "id" val PAD_NAME = "name" val PAD_POSITION = "position" + val PAD_CONTENT_TYPE = "contentType" val PAD_PATHS = "paths" val PATH_ID = "id" 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 f76a22d..7e68623 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 @@ -8,6 +8,7 @@ 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.path.PathAddListener import de.tobias.playpad.server.server.project.sync.listener.project.{ProjectAddListener, ProjectRemoveListener, ProjectUpdateListener} import org.eclipse.jetty.websocket.api.Session import org.eclipse.jetty.websocket.api.annotations.{OnWebSocketClose, OnWebSocketConnect, OnWebSocketMessage, WebSocket} @@ -34,8 +35,10 @@ import scala.collection.{Map, mutable} "page-rm" -> new PageRemoveListener(), "pad-add" -> new PadAddListener(), - //"page-update" -> new PageUpdateListener(), - "pad-rm" -> new PadRemoveListener() + //"pad-update" -> new PadUpdateListener(), + "pad-rm" -> new PadRemoveListener(), + + "path-add" -> new PathAddListener() ) @OnWebSocketConnect def onConnect(serverSession: Session): Unit = { diff --git a/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/path/PathAddListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/path/PathAddListener.scala new file mode 100644 index 0000000..6cdce90 --- /dev/null +++ b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/path/PathAddListener.scala @@ -0,0 +1,24 @@ +package de.tobias.playpad.server.server.project.sync.listener.path + +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 PathAddListener extends Listener { + override def onChange(json: JsonObject, connection: Connection, session: Session): Unit = { + val pathId = UUID.fromString(json.get("id").getAsString) + val padId = UUID.fromString(json.get("pad").getAsString) + val path = json.get("path").getAsString + + SqlHelper.insertOrUpdate(connection, SqlDef.PATH, pathId, SqlDef.PAD_PAGE_REF, padId) + SqlHelper.insertOrUpdate(connection, SqlDef.PATH, pathId, SqlDef.PAD_NAME, path) + } +} -- GitLab