server
Clone or download
Modified Files
M
src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/ActionDetailsPane.java
+69
−28
--- '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
@@ -61,6 +61,7 @@ public class ActionDetailsPane extends V
private Button saveButton;
private Button deleteButton;
private Button openFolderButton;
+ private Button resetToDefaultsFolderButton;
private HBox buttonBar;
@@ -125,7 +126,9 @@ public class ActionDetailsPane extends V
openFolderButton.setOnAction(event -> onOpenFolderButtonClicked());
saveButton = new Button("Apply Changes");
- FontIcon syncIcon = new FontIcon("fas-sync-alt");
+ saveButton.getStyleClass().add("action_details_pane_save_button");
+ FontIcon syncIcon = new FontIcon("far-save");
+ syncIcon.getStyleClass().add("action_details_save_delete_button_icon");
saveButton.setGraphic(syncIcon);
saveButton.setOnAction(event -> onSaveButtonClicked());
@@ -134,9 +137,16 @@ public class ActionDetailsPane extends V
FontIcon deleteIcon = new FontIcon("fas-trash");
deleteIcon.getStyleClass().add("action_details_pane_delete_button_icon");
deleteButton.setGraphic(deleteIcon);
-
deleteButton.setOnAction(event -> onDeleteButtonClicked());
+
+ resetToDefaultsFolderButton = new Button("Reset");
+ resetToDefaultsFolderButton.getStyleClass().add("action_details_pane_reset_button");
+ FontIcon resetToDefaultsIcon = new FontIcon("fas-sync-alt");
+ resetToDefaultsIcon.getStyleClass().add("action_details_pane_reset_button_icon");
+ resetToDefaultsFolderButton.setGraphic(resetToDefaultsIcon);
+ resetToDefaultsFolderButton.setOnAction(event -> onResetToDefaultsButtonClicked());
+
returnButtonForCombineActionChild = new Button("Return");
returnButtonForCombineActionChild.setGraphic(new FontIcon("fas-caret-left"));
returnButtonForCombineActionChild.managedProperty().bind(returnButtonForCombineActionChild.visibleProperty());
@@ -149,7 +159,7 @@ public class ActionDetailsPane extends V
}
});
- buttonBar = new HBox(openFolderButton, returnButtonForCombineActionChild, saveButton, deleteButton);
+ buttonBar = new HBox(openFolderButton, resetToDefaultsFolderButton, returnButtonForCombineActionChild, saveButton, deleteButton);
buttonBar.getStyleClass().add("action_details_pane_button_bar");
buttonBar.setPadding(new Insets(10, 10, 10, 0));
buttonBar.setAlignment(Pos.CENTER_RIGHT);
@@ -204,6 +214,7 @@ public class ActionDetailsPane extends V
clearIconButton.setDisable(false);
getAction().addIcon("default", iconFileByteArray);
+ getAction().setCurrentIconState("default");
setSendIcon(true);
}
} catch (Exception e) {
@@ -451,6 +462,21 @@ public class ActionDetailsPane extends V
});
}
+ private void onResetToDefaultsButtonClicked()
+ {
+ getAction().getClientProperties().resetToDefaults();
+
+ try
+ {
+ onActionClicked(getAction(), getActionBox());
+ saveAction(true, true);
+ }
+ catch (MinorException e)
+ {
+ exceptionAndAlertHandler.handleMinorException(e);
+ }
+ }
+
private VBox normalActionsPropsVBox;
private VBox normalToggleActionCommonPropsVBox;
private VBox toggleActionsPropsVBox;
@@ -512,10 +538,17 @@ public class ActionDetailsPane extends V
- public void refresh() throws MinorException
+ public void refresh()
{
clear(false);
- renderActionProperties();
+ try
+ {
+ renderActionProperties();
+ }
+ catch (MinorException e)
+ {
+ exceptionAndAlertHandler.handleMinorException(e);
+ }
}
private TextField displayNameTextField;
@@ -602,22 +635,7 @@ public class ActionDetailsPane extends V
{
normalToggleActionCommonPropsVBox.setVisible(true);
- if(getAction().getActionType() == ActionType.NORMAL)
- {
- normalActionsPropsVBox.setVisible(true);
- toggleActionsPropsVBox.setVisible(false);
-
-
- boolean doesDefaultExist = getAction().getIcons().containsKey("default");
- boolean isDefaultHidden = !getAction().getCurrentIconState().equals("default");
-
- if(!doesDefaultExist)
- isDefaultHidden = false;
-
- hideDefaultIconCheckBox.setDisable(!doesDefaultExist);
- hideDefaultIconCheckBox.setSelected(isDefaultHidden);
- }
- else
+ if(getAction().getActionType() == ActionType.TOGGLE)
{
normalActionsPropsVBox.setVisible(false);
toggleActionsPropsVBox.setVisible(true);
@@ -647,11 +665,27 @@ public class ActionDetailsPane extends V
hideToggleOffIconCheckBox.setDisable(!doesToggleOffExist);
hideToggleOffIconCheckBox.setSelected(isToggleOffHidden);
}
+ else
+ {
+ normalActionsPropsVBox.setVisible(true);
+ toggleActionsPropsVBox.setVisible(false);
+ boolean doesDefaultExist = getAction().getIcons().containsKey("default");
+ boolean isDefaultHidden = !getAction().getCurrentIconState().equals("default");
+
+ if(!doesDefaultExist)
+ isDefaultHidden = false;
+
+ hideDefaultIconCheckBox.setDisable(!doesDefaultExist);
+ hideDefaultIconCheckBox.setSelected(isDefaultHidden);
+ }
+
setReturnButtonForCombineActionChildVisible(false);
hideDisplayTextCheckBox.setVisible(true);
+
setFolderButtonVisible(getAction().getActionType().equals(ActionType.FOLDER));
+ setResetToDefaultsFolderButtonVisible(!getAction().getActionType().equals(ActionType.FOLDER));
displayTextAlignmentComboBox.getSelectionModel().select(getAction().getDisplayTextAlignment());
@@ -695,11 +729,14 @@ public class ActionDetailsPane extends V
if(!getAction().isInvalid())
{
if(getAction().getActionType() == ActionType.NORMAL || getAction().getActionType() == ActionType.TOGGLE)
+ {
renderClientProperties();
+ renderPluginExtraButtonBar();
+ }
else if(getAction().getActionType() == ActionType.COMBINE)
renderCombineActionProperties();
- renderPluginExtraButtonBar();
+
}
}
@@ -982,14 +1019,15 @@ public class ActionDetailsPane extends V
@Override
public void saveAction(Action action, boolean runAsync, boolean runOnActionSavedFromServer)
{
- logger.info("gOAT@ :"+action.getProfileID());
+ String delayBeforeRunning = "0";
+ if(action.getActionType() != ActionType.FOLDER && action.getActionType() !=ActionType.COMBINE)
+ delayBeforeRunning =delayBeforeRunningTextField.getText();
new OnSaveActionTask(
ClientConnections.getInstance().getClientConnectionBySocketAddress(
getClient().getRemoteSocketAddress()
),
- action,
- delayBeforeRunningTextField.getText(),
+ action, delayBeforeRunning,
displayNameTextField.getText(),
isCombineChild(),
!hideDisplayTextCheckBox.isSelected(),
@@ -1004,15 +1042,13 @@ public class ActionDetailsPane extends V
"#" + actionBackgroundColourPicker.getValue().toString().substring(2),
getCombineActionPropertiesPane(),
clientProfile, sendIcon, actionBox, actionClientProperties, exceptionAndAlertHandler,
- saveButton, deleteButton, runOnActionSavedFromServer, runAsync
+ saveButton, deleteButton, runOnActionSavedFromServer, runAsync, this
);
}
@Override
public void saveAction(boolean runAsync, boolean runOnActionSavedFromServer)
{
- logger.info("ENGREJDERMAARBOOR:"+getAction().getProfileID());
- logger.info("ENGREJDERMAARBOOR:"+getAction().getDisplayText());
saveAction(getAction(), runAsync, runOnActionSavedFromServer);
}
@@ -1021,6 +1057,11 @@ public class ActionDetailsPane extends V
openFolderButton.setVisible(visible);
}
+ public void setResetToDefaultsFolderButtonVisible(boolean visible)
+ {
+ resetToDefaultsFolderButton.setVisible(visible);
+ }
+
public void validateForm() throws MinorException
{
String displayNameStr = displayNameTextField.getText();
M
src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/ActionDetailsPaneListener.java
+1
−1
--- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/ActionDetailsPaneListener.java'
+++ b/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/ActionDetailsPaneListener.java
@@ -23,5 +23,5 @@ public interface ActionDetailsPaneListen
Window getCurrentWindow();
-
+ void refresh();
}
--- '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
@@ -34,7 +34,7 @@ public class OnSaveActionTask extends Ta
boolean isHideDefaultIcon, boolean isHideToggleOffIcon, boolean isHideToggleOnIcon, DisplayTextAlignment displayTextAlignment, boolean isTransparentBackground, String backgroundColour,
CombineActionPropertiesPane combineActionPropertiesPane, ClientProfile clientProfile, boolean sendIcon, ActionBox actionBox,
ArrayList<UIPropertyBox> actionClientProperties, ExceptionAndAlertHandler exceptionAndAlertHandler, Button saveButton, Button deleteButton,
- boolean runOnActionSavedFromServer, boolean runAsync)
+ boolean runOnActionSavedFromServer, boolean runAsync, ActionDetailsPaneListener actionDetailsPaneListener)
{
this.saveButton = saveButton;
this.deleteButton = deleteButton;
@@ -61,6 +61,7 @@ public class OnSaveActionTask extends Ta
this.backgroundColour = backgroundColour;
this.actionClientProperties = actionClientProperties;
this.runOnActionSavedFromServer = runOnActionSavedFromServer;
+ this.actionDetailsPaneListener = actionDetailsPaneListener;
logger = Logger.getLogger(getClass().getName());
@@ -73,6 +74,8 @@ public class OnSaveActionTask extends Ta
private boolean runOnActionSavedFromServer;
+ private ActionDetailsPaneListener actionDetailsPaneListener;
+
private Button saveButton;
private Button deleteButton;
private String delayBeforeRunningString;
@@ -183,7 +186,8 @@ public class OnSaveActionTask extends Ta
}
else
{
- action.setDelayBeforeExecuting(Integer.parseInt(delayBeforeRunningString));
+ if(action.getActionType() != ActionType.FOLDER)
+ action.setDelayBeforeExecuting(Integer.parseInt(delayBeforeRunningString));
//properties
for (UIPropertyBox clientProperty : actionClientProperties) {
@@ -235,6 +239,9 @@ public class OnSaveActionTask extends Ta
clientProfile.removeActionByID(action.getID());
clientProfile.addAction(action);
+ Platform.runLater(actionDetailsPaneListener::refresh);
+
+
}
catch (SevereException e)
{
@@ -252,6 +259,7 @@ public class OnSaveActionTask extends Ta
{
for(String state : action.getIcons().keySet())
{
+ System.out.println("Sending icon " +state+" -> "+action.getID()+ "-> "+clientProfile.getID());
connection.sendIcon(clientProfile.getID(), action.getID(), state, action.getIcon(state));
}
}
--- 'a/src/main/resources/com/stream_pi/server/default_icons.css'
+++ b/src/main/resources/com/stream_pi/server/default_icons.css
@@ -26,4 +26,9 @@
.action_box_toggle_off
{
-fx-icon-code: fas-toggle-off;
+}
+
+.action_details_pane_reset_button_icon
+{
+ -fx-icon-color:orange;
}
\ No newline at end of file
--- 'a/src/main/resources/com/stream_pi/server/style.css'
+++ b/src/main/resources/com/stream_pi/server/style.css
@@ -225,6 +225,11 @@
-fx-text-fill : red;
}
+.action_details_pane_reset_button
+{
+ -fx-text-fill : orange;
+}
+
.client_and_profile_selector_pane_stack
{
-fx-spacing: 5;