server
Clone or download
Modified Files
--- 'a/src/main/java/com/stream_pi/server/action/ExternalPlugins.java'
+++ b/src/main/java/com/stream_pi/server/action/ExternalPlugins.java
@@ -24,6 +24,8 @@ import com.stream_pi.action_api.actionpr
import com.stream_pi.action_api.actionproperty.property.Property;
import com.stream_pi.action_api.actionproperty.property.Type;
import com.stream_pi.action_api.externalplugin.ExternalPlugin;
+import com.stream_pi.action_api.externalplugin.ToggleAction;
+import com.stream_pi.action_api.externalplugin.ToggleExtras;
import com.stream_pi.util.exception.MinorException;
import com.stream_pi.util.exception.SevereException;
import com.stream_pi.util.exception.StreamPiException;
@@ -286,9 +288,12 @@ public class ExternalPlugins
{
try
{
- eachPlugin.setPropertySaver(propertySaver);
+ eachPlugin.setPropertySaver(getPropertySaver());
eachPlugin.setServerConnection(serverConnection);
+ if(eachPlugin instanceof ToggleAction)
+ ((ToggleAction) eachPlugin).setToggleExtras(getToggleExtras());
+
eachPlugin.initProperties();
@@ -503,6 +508,26 @@ public class ExternalPlugins
this.propertySaver = propertySaver;
}
+ public PropertySaver getPropertySaver()
+ {
+ return propertySaver;
+ }
+
+ private ToggleExtras toggleExtras = null;
+
+ /**
+ * Set PropertySaver class
+ * @param toggleExtras instance of PropertySaver
+ */
+ public void setToggleExtras(ToggleExtras toggleExtras)
+ {
+ this.toggleExtras = toggleExtras;
+ }
+
+ public ToggleExtras getToggleExtras() {
+ return toggleExtras;
+ }
+
private ServerConnection serverConnection = null;
/**
--- 'a/src/main/java/com/stream_pi/server/connection/ClientConnection.java'
+++ b/src/main/java/com/stream_pi/server/connection/ClientConnection.java
@@ -940,6 +940,15 @@ public class ClientConnection extends Th
}
}
+ public void setToggleStatus(boolean status, String profileID, String actionID) throws SevereException
+ {
+ Message message = new Message("set_toggle_status");
+
+ message.setStringArrValue(profileID, actionID, status+"");
+
+ sendMessage(message);
+ }
+
public void sendActionFailed(String profileID, String actionID) throws SevereException {
logger.info("Sending failed status ...");
Message message = new Message("action_failed");
--- 'a/src/main/java/com/stream_pi/server/connection/ClientConnections.java'
+++ b/src/main/java/com/stream_pi/server/connection/ClientConnections.java
@@ -42,7 +42,7 @@ public class ClientConnections {
public void removeConnection(ClientConnection clientConnection)
{
- System.out.println(connections.remove(clientConnection)+" 22222222222222222222222222222222222222222");
+ connections.remove(clientConnection);
}
public void disconnectAll()
--- 'a/src/main/java/com/stream_pi/server/controller/Controller.java'
+++ b/src/main/java/com/stream_pi/server/controller/Controller.java
@@ -5,8 +5,10 @@ import com.stream_pi.action_api.action.P
import com.stream_pi.action_api.action.ServerConnection;
import com.stream_pi.action_api.externalplugin.NormalAction;
import com.stream_pi.action_api.externalplugin.ToggleAction;
+import com.stream_pi.action_api.externalplugin.ToggleExtras;
import com.stream_pi.server.Main;
import com.stream_pi.server.action.ExternalPlugins;
+import com.stream_pi.server.client.Client;
import com.stream_pi.server.client.ClientProfile;
import com.stream_pi.server.connection.ClientConnection;
import com.stream_pi.server.connection.ClientConnections;
@@ -22,8 +24,7 @@ import com.stream_pi.server.window.setti
import com.stream_pi.util.alert.StreamPiAlert;
import com.stream_pi.util.alert.StreamPiAlertListener;
import com.stream_pi.util.alert.StreamPiAlertType;
-import com.stream_pi.util.exception.MinorException;
-import com.stream_pi.util.exception.SevereException;
+import com.stream_pi.util.exception.*;
import javafx.animation.Animation;
import javafx.animation.Interpolator;
import javafx.animation.KeyFrame;
@@ -49,7 +50,7 @@ import java.util.concurrent.ExecutorServ
import java.util.concurrent.Executors;
import java.util.logging.Level;
-public class Controller extends Base implements PropertySaver, ServerConnection
+public class Controller extends Base implements PropertySaver, ServerConnection, ToggleExtras
{
private ExecutorService executor = Executors.newCachedThreadPool();
private MainServer mainServer;
@@ -84,6 +85,8 @@ public class Controller extends Base imp
setupSettingsWindowsAnimations();
ExternalPlugins.getInstance().setPropertySaver(this);
+ ExternalPlugins.getInstance().setToggleExtras(this);
+
ExternalPlugins.getInstance().setServerConnection(this);
@@ -716,4 +719,35 @@ public class Controller extends Base imp
});
return closeSettingsTimeline;
}
+
+ @Override
+ public void setToggleStatus(boolean currentStatus, String profileID, String actionID, SocketAddress clientSocketAddress)
+ throws MinorException
+ {
+
+ ClientConnection clientConnection = ClientConnections.getInstance().getClientConnectionBySocketAddress(
+ clientSocketAddress
+ );
+
+ if(clientConnection == null)
+ throw new ClientNotFoundException("setToggleStatus failed because no client found with given socket address");
+
+
+ new Thread(new Task<Void>() {
+ @Override
+ protected Void call()
+ {
+ try
+ {
+ clientConnection.setToggleStatus(currentStatus, profileID, actionID);
+ }
+ catch (SevereException e)
+ {
+ handleSevereException(e);
+ }
+ return null;
+ }
+ }).start();
+
+ }
}