Skip to content
Snippets Groups Projects
Commit 7d0971a0 authored by Tobias Ullerich's avatar Tobias Ullerich
Browse files

#174 - Hide client connection state icon if no connections are configured

parent 334b223a
No related branches found
No related tags found
No related merge requests found
package de.tobias.playpad.plugin.api.client; package de.tobias.playpad.plugin.api.client;
import com.neovisionaries.ws.client.WebSocketException;
import com.neovisionaries.ws.client.WebSocketState; import com.neovisionaries.ws.client.WebSocketState;
import de.thecodelabs.logger.Logger;
import de.thecodelabs.utils.threading.Worker;
import de.thecodelabs.utils.ui.icon.FontAwesomeType; import de.thecodelabs.utils.ui.icon.FontAwesomeType;
import de.thecodelabs.utils.ui.icon.FontIcon; import de.thecodelabs.utils.ui.icon.FontIcon;
import de.thecodelabs.utils.util.Localization; import de.thecodelabs.utils.util.Localization;
...@@ -8,13 +11,18 @@ import de.tobias.playpad.api.PlayPadClient; ...@@ -8,13 +11,18 @@ import de.tobias.playpad.api.PlayPadClient;
import de.tobias.playpad.plugin.MainWindowListener; import de.tobias.playpad.plugin.MainWindowListener;
import de.tobias.playpad.plugin.api.WebApiPlugin$; import de.tobias.playpad.plugin.api.WebApiPlugin$;
import de.tobias.playpad.viewcontroller.main.IMainViewController; import de.tobias.playpad.viewcontroller.main.IMainViewController;
import javafx.application.Platform;
import javafx.beans.InvalidationListener; import javafx.beans.InvalidationListener;
import javafx.beans.binding.Bindings; import javafx.beans.binding.Bindings;
import javafx.beans.property.IntegerProperty; import javafx.beans.property.IntegerProperty;
import javafx.beans.property.ObjectProperty; import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleIntegerProperty;
import javafx.scene.control.Tooltip; import javafx.scene.control.Tooltip;
import javafx.scene.input.MouseEvent;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class WebApiRemoteConnectionStateListener implements MainWindowListener { public class WebApiRemoteConnectionStateListener implements MainWindowListener {
...@@ -28,8 +36,8 @@ public class WebApiRemoteConnectionStateListener implements MainWindowListener { ...@@ -28,8 +36,8 @@ public class WebApiRemoteConnectionStateListener implements MainWindowListener {
connectedProperty = new SimpleIntegerProperty(0); connectedProperty = new SimpleIntegerProperty(0);
connectedProperty.addListener((observable, oldValue, newValue) -> { connectedProperty.addListener((observable, oldValue, newValue) -> {
Platform.runLater(() -> {
boolean allConnected = newValue.intValue() == 0; boolean allConnected = newValue.intValue() == 0;
connectionStateIcon.setIcons(allConnected ? FontAwesomeType.CLOUD : FontAwesomeType.EXCLAMATION_CIRCLE); connectionStateIcon.setIcons(allConnected ? FontAwesomeType.CLOUD : FontAwesomeType.EXCLAMATION_CIRCLE);
if (!allConnected) { if (!allConnected) {
final String disconnectedServers = WebApiPlugin$.MODULE$.connections().entrySet().stream() final String disconnectedServers = WebApiPlugin$.MODULE$.connections().entrySet().stream()
...@@ -42,8 +50,13 @@ public class WebApiRemoteConnectionStateListener implements MainWindowListener { ...@@ -42,8 +50,13 @@ public class WebApiRemoteConnectionStateListener implements MainWindowListener {
connectionStateIcon.setStyle(""); connectionStateIcon.setStyle("");
} }
}); });
});
WebApiPlugin$.MODULE$.connections().addListener((InvalidationListener) observable -> createConnectionStateBinding()); WebApiPlugin$.MODULE$.connections().addListener((InvalidationListener) observable -> {
createConnectionStateBinding();
connectionStateIcon.setVisible(!WebApiPlugin$.MODULE$.connections().isEmpty());
});
connectionStateIcon.setVisible(!WebApiPlugin$.MODULE$.connections().isEmpty());
createConnectionStateBinding(); createConnectionStateBinding();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment