server

Clone or download

More work on the new Icon System

Modified Files

--- 'a/src/main/java/com/stream_pi/server/connection/ClientConnection.java'
+++ b/src/main/java/com/stream_pi/server/connection/ClientConnection.java
@@ -8,6 +8,7 @@ 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.normalaction.NormalAction;
+import com.stream_pi.action_api.normalaction.ToggleAction;
import com.stream_pi.server.action.NormalActionPlugins;
import com.stream_pi.server.client.Client;
import com.stream_pi.server.client.ClientProfile;
@@ -715,10 +716,11 @@ public class ClientConnection extends Th
String profileID = r[0];
String actionID = r[1];
+ boolean toggle = r[2].equals("true");
Action action = client.getProfileByID(profileID).getActionByID(actionID);
- if(action.getActionType() == ActionType.NORMAL)
+ if(action.getActionType() == ActionType.NORMAL || action.getActionType() == ActionType.TOGGLE)
{
NormalAction original = NormalActionPlugins.getInstance().getPluginByModuleName(
action.getModuleName()
@@ -750,10 +752,22 @@ public class ClientConnection extends Th
{
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2 "+normalAction.getDelayBeforeExecuting());
Thread.sleep(normalAction.getDelayBeforeExecuting());
- boolean result = serverListener.onNormalActionClicked(normalAction);
- if(!result)
+
+ if(normalAction instanceof ToggleAction)
+ {
+ boolean result = serverListener.onToggleActionClicked((ToggleAction) normalAction, toggle);
+ if(!result)
+ {
+ sendActionFailed(profileID, actionID);
+ }
+ }
+ else
{
- sendActionFailed(profileID, actionID);
+ boolean result = serverListener.onNormalActionClicked(normalAction);
+ if(!result)
+ {
+ sendActionFailed(profileID, actionID);
+ }
}
}
catch (SevereException e)
--- 'a/src/main/java/com/stream_pi/server/connection/ServerListener.java'
+++ b/src/main/java/com/stream_pi/server/connection/ServerListener.java
@@ -1,10 +1,13 @@
package com.stream_pi.server.connection;
import com.stream_pi.action_api.normalaction.NormalAction;
+import com.stream_pi.action_api.normalaction.ToggleAction;
import com.stream_pi.util.exception.SevereException;
-public interface ServerListener {
+public interface ServerListener
+{
boolean onNormalActionClicked(NormalAction action);
+ boolean onToggleActionClicked(ToggleAction action, boolean toggle);
void clearTemp();
--- 'a/src/main/java/com/stream_pi/server/controller/Controller.java'
+++ b/src/main/java/com/stream_pi/server/controller/Controller.java
@@ -3,6 +3,7 @@ package com.stream_pi.server.controller;
import com.stream_pi.action_api.action.ServerConnection;
import com.stream_pi.action_api.action.PropertySaver;
import com.stream_pi.action_api.normalaction.NormalAction;
+import com.stream_pi.action_api.normalaction.ToggleAction;
import com.stream_pi.server.Main;
import com.stream_pi.server.action.NormalActionPlugins;
import com.stream_pi.server.connection.ClientConnections;
@@ -518,6 +519,44 @@ public class Controller extends Base imp
}
@Override
+ public boolean onToggleActionClicked(ToggleAction action, boolean toggle) {
+ try{
+ getLogger().info("action "+action.getID()+" clicked!");
+
+ if(toggle)
+ {
+ action.onToggleOn();
+ }
+ else
+ {
+ action.onToggleOff();
+ }
+ return true;
+ }
+ catch (Exception e)
+ {
+ //check if its windows UAC related
+ if(e.getMessage().contains("operation requires elevation"))
+ {
+ handleMinorException(new MinorException(
+ "Action Execution Failed!",
+ "Error running action at ["+action.getLocation().getRow()+","+action.getLocation().getCol()+"] ("+action.getDisplayText()+")\n"+
+ "This action requires higher UAC privileges. Re-launch Stream-Pi Server with 'Administrator Privileges' in order to run this command.")
+ );
+ }
+ else
+ {
+ handleMinorException(new MinorException(
+ "Action Execution Failed!",
+ "Error running action at ["+action.getLocation().getRow()+","+action.getLocation().getCol()+"] ("+action.getDisplayText()+")\n"+
+ "Check stacktrace/log to know what exactly happened\n\nMessage : \n"+e.getMessage() )
+ );
+ }
+ return false;
+ }
+ }
+
+ @Override
public void clearTemp() {
Platform.runLater(() -> {
getDashboardPane().getClientDetailsPane().refresh();
@@ -542,6 +581,11 @@ public class Controller extends Base imp
}
@Override
+ public void saveClientIcons() {
+
+ }
+
+ @Override
public com.stream_pi.util.platform.Platform getPlatform() {
return ServerInfo.getInstance().getPlatform();
}
--- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionBox.java'
+++ b/src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionBox.java
@@ -63,6 +63,7 @@ public class ActionBox extends StackPane
setAction(null);
getStyleClass().clear();
setBackground(Background.EMPTY);
+ removeFontIcon();
getChildren().clear();
baseInit();
}
@@ -266,6 +267,8 @@ public class ActionBox extends StackPane
public void setIcon(byte[] iconByteArray)
{
+ removeFontIcon();
+
if(iconByteArray == null)
{
getStyleClass().remove("action_box_icon_present");
@@ -291,7 +294,6 @@ public class ActionBox extends StackPane
public void setDefaultToggleIcon(boolean isToggleOn)
{
- setBackground(null);
String styleClass;
@@ -304,11 +306,28 @@ public class ActionBox extends StackPane
styleClass = "action_box_toggle_off";
}
- FontIcon fontIcon = new FontIcon();
+ setBackground(null);
+ removeFontIcon();
+
+ fontIcon = new FontIcon();
fontIcon.getStyleClass().add(styleClass);
fontIcon.setIconSize((int) (size * 0.8));
+
+ getChildren().add(fontIcon);
+ fontIcon.toBack();
}
+ public void removeFontIcon()
+ {
+ if(fontIcon!=null)
+ {
+ getChildren().remove(fontIcon);
+ fontIcon = null;
+ }
+ }
+
+ FontIcon fontIcon = null;
+
private Action action = null;
private ExceptionAndAlertHandler exceptionAndAlertHandler;