From 3d2213b66b7bd2d3dbe53274c99d2ea680b8eab9 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Sat, 7 Oct 2023 10:54:56 +0200 Subject: [PATCH] #187 - Change page changes to web api --- .../main/MainViewController.java | 2 ++ .../playpad/plugin/MainWindowListener.java | 3 +++ .../playpad/plugin/api/WebApiPlugin.scala | 3 ++- .../listener/MainWindowPageListener.scala | 19 +++++++++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/listener/MainWindowPageListener.scala diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/main/MainViewController.java b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/main/MainViewController.java index 68a0de52..802ba9ea 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/main/MainViewController.java +++ b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/main/MainViewController.java @@ -468,6 +468,8 @@ public class MainViewController extends NVC implements IMainViewController, Noti } loadUserCss(); + PlayPadPlugin.getInstance().getMainViewListeners().forEach(listener -> listener.onCurrentPageChanged(page)); + return true; } diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/plugin/MainWindowListener.java b/PlayWallCore/src/main/java/de/tobias/playpad/plugin/MainWindowListener.java index ed330ccf..c73a2d3a 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/plugin/MainWindowListener.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/plugin/MainWindowListener.java @@ -4,6 +4,9 @@ import de.tobias.playpad.viewcontroller.main.IMainViewController; public interface MainWindowListener extends WindowListener<IMainViewController> { + default void onCurrentPageChanged(int newPage) { + } + default void loadMenuKeyBinding() { } } diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/WebApiPlugin.scala b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/WebApiPlugin.scala index 9953f386..900bedfc 100644 --- a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/WebApiPlugin.scala +++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/WebApiPlugin.scala @@ -15,7 +15,7 @@ import de.tobias.playpad.plugin.api.WebApiPlugin.connectToRemoteInstances import de.tobias.playpad.plugin.api.client.WebApiRemoteConnectionStateListener import de.tobias.playpad.plugin.api.settings.{WebApiRemoteSettings, WebApiSettings, WebApiSettingsViewController} import de.tobias.playpad.plugin.api.websocket.WebSocketHandler -import de.tobias.playpad.plugin.api.websocket.listener.{PadApiListener, ProjectListener} +import de.tobias.playpad.plugin.api.websocket.listener.{MainWindowPageListener, PadApiListener, ProjectListener} import de.tobias.playpad.plugin.{Module, PlayPadPluginStub} import javafx.application.Platform import javafx.collections.{FXCollections, ObservableMap} @@ -38,6 +38,7 @@ class WebApiPlugin extends PlayPadPluginStub with PluginArtifact { PlayPadPlugin.getInstance().addPadListener(new PadApiListener) PlayPadPlugin.getInstance().addGlobalListener(new ProjectListener) + PlayPadPlugin.getInstance().addMainViewListener(new MainWindowPageListener) Logger.debug("Enable Web API Plugin") diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/listener/MainWindowPageListener.scala b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/listener/MainWindowPageListener.scala new file mode 100644 index 00000000..fd1ceaef --- /dev/null +++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/listener/MainWindowPageListener.scala @@ -0,0 +1,19 @@ +package de.tobias.playpad.plugin.api.websocket.listener + +import com.google.gson.JsonObject +import de.tobias.playpad.plugin.MainWindowListener +import de.tobias.playpad.plugin.api.websocket.WebSocketHandler +import de.tobias.playpad.viewcontroller.main.IMainViewController + +class MainWindowPageListener extends MainWindowListener { + + override def onInit(t: IMainViewController): Unit = { + } + + override def onCurrentPageChanged(newPage: Int): Unit = { + val payload = new JsonObject + payload.addProperty("newPage", newPage) + + WebSocketHandler.instance.sendUpdate("current-page-changed", payload) + } +} -- GitLab