server

Clone or download

Added context menu, warning before deleting action

Modified Files

--- '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
@@ -21,6 +21,9 @@ import com.stream_pi.server.window.dashb
import com.stream_pi.server.window.ExceptionAndAlertHandler;
import com.stream_pi.server.controller.ActionDataFormats;
import com.stream_pi.server.window.dashboard.actiongridpane.ActionGridPaneListener;
+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.uihelper.HBoxInputBox;
@@ -1126,17 +1129,41 @@ public class ActionDetailsPane extends V
}
}
+ @Override
public void onDeleteButtonClicked()
{
- new OnDeleteActionTask(
- ClientConnections.getInstance().getClientConnectionBySocketAddress(
- getClient().getRemoteSocketAddress()
- ),
- action,
- isCombineChild(),
- getCombineActionPropertiesPane(),
- clientProfile, actionBox, this, exceptionAndAlertHandler,
- !isCombineChild
+ StreamPiAlert streamPiAlert = new StreamPiAlert(
+ "Warning",
+ "Are you sure you want to delete the action?",
+ StreamPiAlertType.WARNING
);
+
+ String optionYes = "Yes";
+ String optionNo = "No";
+
+ streamPiAlert.setButtons(optionYes, optionNo);
+
+ ActionDetailsPane actionDetailsPane = this;
+
+ streamPiAlert.setOnClicked(new StreamPiAlertListener() {
+ @Override
+ public void onClick(String s) {
+ if(s.equals(optionYes))
+ {
+ new OnDeleteActionTask(
+ ClientConnections.getInstance().getClientConnectionBySocketAddress(
+ getClient().getRemoteSocketAddress()
+ ),
+ action,
+ isCombineChild(),
+ getCombineActionPropertiesPane(),
+ clientProfile, actionBox, actionDetailsPane, exceptionAndAlertHandler,
+ !isCombineChild
+ );
+ }
+ }
+ });
+
+ streamPiAlert.show();
}
}
\ No newline at end of file
--- '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
@@ -24,4 +24,6 @@ public interface ActionDetailsPaneListen
Window getCurrentWindow();
void refresh();
+
+ void onDeleteButtonClicked();
}
--- '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
@@ -16,6 +16,7 @@ import javafx.geometry.Pos;
import javafx.scene.CacheHint;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.Label;
+import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import javafx.scene.image.Image;
import javafx.scene.input.ClipboardContent;
@@ -251,53 +252,59 @@ public class ActionBox extends StackPane
setOnMouseClicked(mouseEvent -> {
if(action != null)
{
- if(mouseEvent.getButton().equals(MouseButton.PRIMARY))
+ if(mouseEvent.getClickCount() == 2 && getAction().getActionType() == ActionType.FOLDER)
{
- if(mouseEvent.getClickCount() == 2 && getAction().getActionType() == ActionType.FOLDER)
+ getActionDetailsPaneListener().onOpenFolderButtonClicked();
+ }
+ else
+ {
+ try
{
- getActionDetailsPaneListener().onOpenFolderButtonClicked();
+ actionDetailsPaneListener.onActionClicked(action, this);
}
- else
+ catch (MinorException e)
{
- try
- {
- actionDetailsPaneListener.onActionClicked(action, this);
- }
- catch (MinorException e)
- {
- exceptionAndAlertHandler.handleMinorException(e);
- e.printStackTrace();
- }
+ exceptionAndAlertHandler.handleMinorException(e);
+ e.printStackTrace();
}
}
- else if(mouseEvent.getButton().equals(MouseButton.SECONDARY))
+
+ if(mouseEvent.getButton().equals(MouseButton.SECONDARY))
{
- if(getAction().getActionType() == ActionType.TOGGLE)
- {
- toggleStateContextMenu.show(this, mouseEvent.getScreenX(),
- mouseEvent.getScreenY());
- }
+ actionContextMenu.show(this, mouseEvent.getScreenX(),
+ mouseEvent.getScreenY());
}
}
});
- toggleStateContextMenu = new ContextMenu();
+ actionContextMenu = new ContextMenu();
- MenuItem showToggleOffMenuItem = new MenuItem("Show Toggle OFF");
+ MenuItem deleteActionMenuItem = new MenuItem("Delete Action");
+ deleteActionMenuItem.setOnAction(event-> deleteAction());
+
+ showToggleOffMenuItem = new MenuItem("Show Toggle OFF");
showToggleOffMenuItem.setOnAction(event-> fakeToggle(false));
- MenuItem showToggleOnMenuItem = new MenuItem("Show Toggle ON");
+ showToggleOnMenuItem = new MenuItem("Show Toggle ON");
showToggleOnMenuItem.setOnAction(event-> fakeToggle(true));
- toggleStateContextMenu.getItems().addAll(showToggleOffMenuItem, showToggleOnMenuItem);
+ actionContextMenu.getItems().addAll(deleteActionMenuItem, showToggleOffMenuItem, showToggleOnMenuItem);
setCache(true);
setCacheHint(CacheHint.QUALITY);
}
- ContextMenu toggleStateContextMenu;
+ private MenuItem showToggleOffMenuItem;
+ private MenuItem showToggleOnMenuItem;
+
+ private void deleteAction()
+ {
+ actionDetailsPaneListener.onDeleteButtonClicked();
+ }
+
+ ContextMenu actionContextMenu;
public void setInvalid(boolean invalid)
{
@@ -462,6 +469,9 @@ public class ActionBox extends StackPane
setBackground(null);
setStyle(null);
+ showToggleOffMenuItem.setVisible(getAction().getActionType() == ActionType.TOGGLE);
+ showToggleOnMenuItem.setVisible(getAction().getActionType() == ActionType.TOGGLE);
+
if(getAction().isShowDisplayText())
setDisplayTextLabel(getAction().getDisplayText());
else