server

Clone or download

Added delay before running for actions

Modified Files

--- 'a/src/main/java/com/stream_pi/server/connection/ClientConnection.java'
+++ b/src/main/java/com/stream_pi/server/connection/ClientConnection.java
@@ -479,16 +479,18 @@ public class ClientConnection extends Th
String root = r[14];
action.setParent(root);
+ action.setDelayBeforeExecuting(Integer.parseInt(r[15]));
+
//client properties
- int clientPropertiesSize = Integer.parseInt(r[15]);
+ int clientPropertiesSize = Integer.parseInt(r[16]);
ClientProperties clientProperties = new ClientProperties();
if(actionType == ActionType.FOLDER)
clientProperties.setDuplicatePropertyAllowed(true);
- for(int i = 16;i<((clientPropertiesSize*2) + 16); i+=2)
+ for(int i = 17;i<((clientPropertiesSize*2) + 17); i+=2)
{
Property property = new Property(r[i], Type.STRING);
property.setRawValue(r[i+1]);
@@ -639,6 +641,8 @@ public class ClientConnection extends Th
a.add(action.getParent());
+ a.add(action.getDelayBeforeExecuting()+"");
+
//client properties
ClientProperties clientProperties = action.getClientProperties();
@@ -753,6 +757,7 @@ public class ClientConnection extends Th
normalAction.setLocation(action.getLocation());
normalAction.setDisplayText(action.getDisplayText());
normalAction.setID(actionID);
+ normalAction.setDelayBeforeExecuting(action.getDelayBeforeExecuting());
normalAction.setClientProperties(action.getClientProperties());
@@ -762,6 +767,8 @@ public class ClientConnection extends Th
{
try
{
+ System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2 "+normalAction.getDelayBeforeExecuting());
+ Thread.sleep(normalAction.getDelayBeforeExecuting());
boolean result = serverListener.onNormalActionClicked(normalAction);
if(!result)
{
@@ -772,6 +779,10 @@ public class ClientConnection extends Th
{
exceptionAndAlertHandler.handleSevereException(e);
}
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
return null;
}
}).start();
--- 'a/src/main/java/com/stream_pi/server/controller/Controller.java'
+++ b/src/main/java/com/stream_pi/server/controller/Controller.java
@@ -487,7 +487,7 @@ public class Controller extends Base imp
}
@Override
- public boolean onNormalActionClicked(NormalAction action) {
+ public synchronized boolean onNormalActionClicked(NormalAction action) {
try{
getLogger().info("action "+action.getID()+" clicked!");
--- 'a/src/main/java/com/stream_pi/server/window/dashboard/PluginsPane.java'
+++ b/src/main/java/com/stream_pi/server/window/dashboard/PluginsPane.java
@@ -252,7 +252,6 @@ public class PluginsPane extends VBox {
mouseEvent.consume();
});
-
HBox.setHgrow(folderActionButton, Priority.ALWAYS);
HBox h1 = new HBox(folderActionButton);
h1.getStyleClass().add("plugins_pane_each_plugin_box");
@@ -263,7 +262,7 @@ public class PluginsPane extends VBox {
vBox.getChildren().addAll(h1, h2);
- TitledPane pane = new TitledPane("StreamPi", vBox);
+ TitledPane pane = new TitledPane("Stream-Pi", vBox);
pane.getStyleClass().add("plugins_pane_each_plugin_category_titled_pane");
pluginsAccordion.getPanes().add(pane);
--- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/ActionDetailsPane.java'
+++ b/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/ActionDetailsPane.java
@@ -573,8 +573,18 @@ public class ActionDetailsPane extends V
private ArrayList<UIPropertyBox> actionClientProperties;
+ private TextField delayBeforeRunningTextField;
+
public void renderClientProperties() throws MinorException
{
+
+ delayBeforeRunningTextField = new TextField();
+ delayBeforeRunningTextField.setText(getAction().getDelayBeforeExecuting()+"");
+
+ clientPropertiesVBox.getChildren().add(
+ new HBoxInputBox("Delay before running (milli-seconds)", delayBeforeRunningTextField, 50)
+ );
+
for(int i =0;i< action.getClientProperties().getSize(); i++)
{
Property eachProperty = action.getClientProperties().get().get(i);
@@ -710,6 +720,7 @@ public class ActionDetailsPane extends V
getClient().getRemoteSocketAddress()
),
action,
+ delayBeforeRunningTextField.getText(),
displayNameTextField.getText(),
isCombineChild(),
!hideDisplayTextCheckBox.isSelected(),
@@ -760,7 +771,23 @@ public class ActionDetailsPane extends V
if(hideDisplayTextCheckBox.isSelected())
finalErrors.append(" * Display Text cannot be hidden, since there is also no icon.\n");
}
+ }
+ if(action.getActionType() == ActionType.NORMAL)
+ {
+ try
+ {
+ int n = Integer.parseInt(delayBeforeRunningTextField.getText());
+
+ if (n<0)
+ {
+ finalErrors.append(" * Sleep should be greater than 0.\n");
+ }
+ }
+ catch (Exception e)
+ {
+ finalErrors.append(" * Sleep should be a number.\n");
+ }
}
--- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/OnSaveActionTask.java'
+++ b/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/OnSaveActionTask.java
@@ -27,7 +27,7 @@ public class OnSaveActionTask extends Ta
private Logger logger;
- public OnSaveActionTask(ClientConnection connection, Action action, String displayNameText, boolean isCombineChild,
+ public OnSaveActionTask(ClientConnection connection, Action action, String delayBeforeRunningString, String displayNameText, boolean isCombineChild,
boolean isShowDisplayText, boolean isDefaultDisplayTextColour, String displayTextFontColour, boolean isClearIcon,
boolean isHideIcon, DisplayTextAlignment displayTextAlignment, boolean isTransparentBackground, String backgroundColour,
CombineActionPropertiesPane combineActionPropertiesPane, ClientProfile clientProfile, boolean sendIcon, ActionBox actionBox,
@@ -36,6 +36,7 @@ public class OnSaveActionTask extends Ta
{
this.saveButton = saveButton;
this.deleteButton = deleteButton;
+ this.delayBeforeRunningString = delayBeforeRunningString;
this.connection = connection;
this.action = action;
@@ -68,6 +69,7 @@ public class OnSaveActionTask extends Ta
private Button saveButton;
private Button deleteButton;
+ private String delayBeforeRunningString;
private boolean isShowDisplayText;
private boolean isCombineChild;
private String displayNameText;
@@ -162,6 +164,8 @@ public class OnSaveActionTask extends Ta
}
else
{
+ action.setDelayBeforeExecuting(Integer.parseInt(delayBeforeRunningString));
+
//properties
for (UIPropertyBox clientProperty : actionClientProperties) {
action.getClientProperties().get().get(clientProperty.getIndex()).setRawValue(clientProperty.getRawValue());