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 68a0de522f978907d687bbe78c6888cc9eb7704b..802ba9ea1a45b76ff9247a1c5797a77e02142e0d 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 ed330ccf0418863959b60738f6010d162d03e286..c73a2d3a5541ee37aa951db33b3b1508fe31b0a3 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 9953f386f8eae9d743ffe3200db402558432ec14..900bedfc13678eadaa0b0b07e3dfa16a79724eb0 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 0000000000000000000000000000000000000000..fd1ceaefe77e5a54abf8a9fa161953a20da1c463 --- /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) + } +}