From 12c230af4729168a600e39679a04a83d8bfe3bb6 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Sun, 21 Nov 2021 17:53:52 +0100 Subject: [PATCH] #174 - Reconnect to disconnected servers on icon click --- .../WebApiRemoteConnectionStateListener.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java index 20756ec1..1c095abf 100644 --- a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java +++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java @@ -34,6 +34,8 @@ public class WebApiRemoteConnectionStateListener implements MainWindowListener { connectionStateIcon = new FontIcon(FontAwesomeType.CLOUD); connectionStateIcon.setSize(20); + connectionStateIcon.setOnMouseClicked(this::onIconClicked); + connectedProperty = new SimpleIntegerProperty(0); connectedProperty.addListener((observable, oldValue, newValue) -> { Platform.runLater(() -> { @@ -70,6 +72,19 @@ public class WebApiRemoteConnectionStateListener implements MainWindowListener { ); } + private void onIconClicked(MouseEvent event) { + WebApiPlugin$.MODULE$.connections().values().stream() + .filter(client -> client.getPlayPadConnectionState() != WebSocketState.OPEN) + .forEach(client -> Worker.runLater(() -> { + try { + client.disconnect(); + client.connect(1); + } catch (IOException | WebSocketException e) { + Logger.error(e); + } + })); + } + @Override public void onInit(IMainViewController mainViewController) { mainViewController.performLayoutDependedAction((oldToolbar, newToolbar) -> { -- GitLab