From: Debayan Sutradhar Date: Wed, 24 Mar 2021 22:14:03 +0530 Subject: work --- work --- --- '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 @@ -64,6 +64,8 @@ public class ActionDetailsPane extends V private HBox buttonBar; + private VBox pluginExtraButtonBar; + private Label actionHeadingLabel; private Logger logger; @@ -96,6 +98,10 @@ public class ActionDetailsPane extends V vbox.setSpacing(10.0); + pluginExtraButtonBar = new VBox(); + pluginExtraButtonBar.setSpacing(10.0); + + getStyleClass().add("action_details_pane"); scrollPane = new ScrollPane(); @@ -136,8 +142,8 @@ public class ActionDetailsPane extends V returnButtonForCombineActionChild.managedProperty().bind(returnButtonForCombineActionChild.visibleProperty()); returnButtonForCombineActionChild.setOnAction(event -> { try { - logger.info("@@## : " + action.getParent()); - onActionClicked(getClientProfile().getActionByID(action.getParent()), getActionBox()); + logger.info("@@## : " + getAction().getParent()); + onActionClicked(getClientProfile().getActionByID(getAction().getParent()), getActionBox()); } catch (MinorException e) { e.printStackTrace(); } @@ -197,7 +203,7 @@ public class ActionDetailsPane extends V hideDefaultIconCheckBox.setSelected(false); clearIconButton.setDisable(false); - action.addIcon("default", iconFileByteArray); + getAction().addIcon("default", iconFileByteArray); setSendIcon(true); } } catch (Exception e) { @@ -216,7 +222,7 @@ public class ActionDetailsPane extends V hideToggleOffIconCheckBox.setSelected(false); clearIconButton.setDisable(false); - action.addIcon("toggle_off", iconFileByteArray); + getAction().addIcon("toggle_off", iconFileByteArray); setSendIcon(true); } } catch (Exception e) { @@ -236,7 +242,7 @@ public class ActionDetailsPane extends V hideToggleOnIconCheckBox.setSelected(false); clearIconButton.setDisable(false); - action.addIcon("toggle_on", iconFileByteArray); + getAction().addIcon("toggle_on", iconFileByteArray); setSendIcon(true); } } catch (Exception e) { @@ -287,8 +293,8 @@ public class ActionDetailsPane extends V actionBackgroundColourPicker.disableProperty() .bind(actionBackgroundColourTransparentCheckBox.selectedProperty()); - HBox.setMargin(actionBackgroundColourTransparentCheckBox, new Insets(0, 0, 0, 10)); - + HBox.setMargin(actionBackgroundColourTransparentCheckBox, new Insets(0, 0, 0, 10)); + displayTextColourDefaultCheckBox = new CheckBox("Default"); displayTextColourPicker.disableProperty() @@ -345,14 +351,16 @@ public class ActionDetailsPane extends V toggleActionsPropsVBox.managedProperty().bind(toggleActionsPropsVBox.visibleProperty()); toggleActionsPropsVBox.setSpacing(10.0); - vbox.getChildren().addAll(displayTextFieldHBox,normalToggleActionCommonPropsVBox, normalActionsPropsVBox, toggleActionsPropsVBox, clientPropertiesVBox); + vbox.getChildren().addAll(displayTextFieldHBox,normalToggleActionCommonPropsVBox, + normalActionsPropsVBox, toggleActionsPropsVBox, clientPropertiesVBox, + pluginExtraButtonBar); vbox.setVisible(false); scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); setOnDragOver(dragEvent -> { if (dragEvent.getDragboard().hasContent(ActionDataFormats.ACTION_TYPE) && action != null) { - if (action.getActionType() == ActionType.COMBINE) { + if (getAction().getActionType() == ActionType.COMBINE) { dragEvent.acceptTransferModes(TransferMode.ANY); dragEvent.consume(); @@ -398,7 +406,9 @@ public class ActionDetailsPane extends V newAction.setLocation(new Location(-1, -1)); - newAction.setParent(this.action.getID()); + newAction.setParent(getAction().getID()); + newAction.setProfileID(actionGridPaneListener.getCurrentProfile().getID()); + newAction.setSocketAddressForClient(actionGridPaneListener.getClientConnection().getRemoteSocketAddress()); try { @@ -406,7 +416,7 @@ public class ActionDetailsPane extends V } catch (Exception e) { - exceptionAndAlertHandler.handleMinorException(new MinorException("Error","onCreate() failed for "+action.getModuleName()+"\n\n"+e.getMessage())); + exceptionAndAlertHandler.handleMinorException(new MinorException("Error","onCreate() failed for "+getAction().getModuleName()+"\n\n"+e.getMessage())); } combineActionPropertiesPane.getCombineAction().addChild(newAction.getID()); @@ -477,7 +487,7 @@ public class ActionDetailsPane extends V private Action action; - public Action getAction() { + public synchronized Action getAction() { return action; } @@ -492,12 +502,16 @@ public class ActionDetailsPane extends V { clear(); - this.action = action; + setAction(action); this.actionBox = actionBox; + System.out.println(getAction().getProfileID()+"KOBAAA"); + renderActionProperties(); } + + public void refresh() throws MinorException { clear(false); @@ -536,6 +550,7 @@ public class ActionDetailsPane extends V clientPropertiesVBox.getChildren().clear(); + pluginExtraButtonBar.getChildren().clear(); vbox.setVisible(false); scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); buttonBar.setVisible(false); @@ -567,13 +582,13 @@ public class ActionDetailsPane extends V { //Combine Child action - isCombineChild = action.getLocation().getCol() == -1; + isCombineChild = getAction().getLocation().getCol() == -1; System.out.println(isCombineChild); - System.out.println("DISPLAY : "+action.getDisplayText()); + System.out.println("DISPLAY : "+getAction().getDisplayText()); - displayNameTextField.setText(action.getDisplayText()); + displayNameTextField.setText(getAction().getDisplayText()); if(isCombineChild) { @@ -593,8 +608,8 @@ public class ActionDetailsPane extends V toggleActionsPropsVBox.setVisible(false); - boolean doesDefaultExist = action.getIcons().containsKey("default"); - boolean isDefaultHidden = !action.getCurrentIconState().equals("default"); + boolean doesDefaultExist = getAction().getIcons().containsKey("default"); + boolean isDefaultHidden = !getAction().getCurrentIconState().equals("default"); if(!doesDefaultExist) isDefaultHidden = false; @@ -608,8 +623,8 @@ public class ActionDetailsPane extends V toggleActionsPropsVBox.setVisible(true); - boolean doesToggleOnExist = action.getIcons().containsKey("toggle_on"); - boolean isToggleOnHidden = action.getCurrentIconState().contains("toggle_on"); + boolean doesToggleOnExist = getAction().getIcons().containsKey("toggle_on"); + boolean isToggleOnHidden = getAction().getCurrentIconState().contains("toggle_on"); if(!doesToggleOnExist) @@ -621,8 +636,8 @@ public class ActionDetailsPane extends V - boolean doesToggleOffExist = action.getIcons().containsKey("toggle_off"); - boolean isToggleOffHidden = action.getCurrentIconState().contains("toggle_off"); + boolean doesToggleOffExist = getAction().getIcons().containsKey("toggle_off"); + boolean isToggleOffHidden = getAction().getCurrentIconState().contains("toggle_off"); @@ -636,26 +651,26 @@ public class ActionDetailsPane extends V setReturnButtonForCombineActionChildVisible(false); hideDisplayTextCheckBox.setVisible(true); - setFolderButtonVisible(action.getActionType().equals(ActionType.FOLDER)); + setFolderButtonVisible(getAction().getActionType().equals(ActionType.FOLDER)); - displayTextAlignmentComboBox.getSelectionModel().select(action.getDisplayTextAlignment()); + displayTextAlignmentComboBox.getSelectionModel().select(getAction().getDisplayTextAlignment()); - if(!action.getBgColourHex().isEmpty()) - actionBackgroundColourPicker.setValue(Color.valueOf(action.getBgColourHex())); + if(!getAction().getBgColourHex().isEmpty()) + actionBackgroundColourPicker.setValue(Color.valueOf(getAction().getBgColourHex())); else actionBackgroundColourTransparentCheckBox.setSelected(true); - - if(!action.getDisplayTextFontColourHex().isEmpty()) - displayTextColourPicker.setValue(Color.valueOf(action.getDisplayTextFontColourHex())); + + if(!getAction().getDisplayTextFontColourHex().isEmpty()) + displayTextColourPicker.setValue(Color.valueOf(getAction().getDisplayTextFontColourHex())); else displayTextColourDefaultCheckBox.setSelected(true); - hideDisplayTextCheckBox.setSelected(!action.isShowDisplayText()); + hideDisplayTextCheckBox.setSelected(!getAction().isShowDisplayText()); - clearIconButton.setDisable(!action.isHasIcon()); + clearIconButton.setDisable(!getAction().isHasIcon()); } @@ -664,25 +679,38 @@ public class ActionDetailsPane extends V vbox.setVisible(true); scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED); - if(action.getActionType() == ActionType.NORMAL || action.getActionType() == ActionType.TOGGLE) + if(getAction().getActionType() == ActionType.NORMAL || getAction().getActionType() == ActionType.TOGGLE) { - if(action.isInvalid()) - setActionHeadingLabelText("Invalid action ("+action.getModuleName()+")"); + if(getAction().isInvalid()) + setActionHeadingLabelText("Invalid action ("+getAction().getModuleName()+")"); else - setActionHeadingLabelText(action.getName()); + setActionHeadingLabelText(getAction().getName()); } - else if(action.getActionType() == ActionType.COMBINE) + else if(getAction().getActionType() == ActionType.COMBINE) setActionHeadingLabelText("Combine action"); - else if(action.getActionType() == ActionType.FOLDER) + else if(getAction().getActionType() == ActionType.FOLDER) setActionHeadingLabelText("Folder action"); - if(!action.isInvalid()) + if(!getAction().isInvalid()) { - if(action.getActionType() == ActionType.NORMAL || action.getActionType() == ActionType.TOGGLE) + if(getAction().getActionType() == ActionType.NORMAL || getAction().getActionType() == ActionType.TOGGLE) renderClientProperties(); - else if(action.getActionType() == ActionType.COMBINE) + else if(getAction().getActionType() == ActionType.COMBINE) renderCombineActionProperties(); + + renderPluginExtraButtonBar(); + } + } + + private void renderPluginExtraButtonBar() + { + ExternalPlugin externalPlugin = (ExternalPlugin) getAction(); + + if(externalPlugin.getClientActionSettingsButtonBar() != null) + { + HBox tba = new HBox(SpaceFiller.horizontal(), externalPlugin.getClientActionSettingsButtonBar()); + pluginExtraButtonBar.getChildren().add(tba); } } @@ -715,24 +743,25 @@ public class ActionDetailsPane extends V } } - public void setAction(Action action) { + @Override + public synchronized void setAction(Action action) { this.action = action; } public FolderAction getActionAsFolderAction(Action action) { FolderAction folderAction = new FolderAction(); - folderAction.setDisplayText(action.getDisplayText()); - folderAction.setName(action.getName()); - folderAction.setID(action.getID()); - folderAction.setLocation(action.getLocation()); - folderAction.setBgColourHex(action.getBgColourHex()); - folderAction.setParent(action.getParent()); - folderAction.getClientProperties().set(action.getClientProperties()); - folderAction.setDisplayTextAlignment(action.getDisplayTextAlignment()); - folderAction.setIcons(action.getIcons()); - folderAction.setCurrentIconState(action.getCurrentIconState()); - folderAction.setDisplayTextFontColourHex(action.getDisplayTextFontColourHex()); + folderAction.setDisplayText(getAction().getDisplayText()); + folderAction.setName(getAction().getName()); + folderAction.setID(getAction().getID()); + folderAction.setLocation(getAction().getLocation()); + folderAction.setBgColourHex(getAction().getBgColourHex()); + folderAction.setParent(getAction().getParent()); + folderAction.getClientProperties().set(getAction().getClientProperties()); + folderAction.setDisplayTextAlignment(getAction().getDisplayTextAlignment()); + folderAction.setIcons(getAction().getIcons()); + folderAction.setCurrentIconState(getAction().getCurrentIconState()); + folderAction.setDisplayTextFontColourHex(getAction().getDisplayTextFontColourHex()); return folderAction; } @@ -740,17 +769,17 @@ public class ActionDetailsPane extends V public CombineAction getActionAsCombineAction(Action action) { CombineAction combineAction = new CombineAction(); - combineAction.setDisplayText(action.getDisplayText()); - combineAction.setName(action.getName()); - combineAction.setID(action.getID()); - combineAction.setLocation(action.getLocation()); - combineAction.setBgColourHex(action.getBgColourHex()); - combineAction.setParent(action.getParent()); - combineAction.getClientProperties().set(action.getClientProperties()); - combineAction.setDisplayTextAlignment(action.getDisplayTextAlignment()); - combineAction.setIcons(action.getIcons()); - combineAction.setCurrentIconState(action.getCurrentIconState()); - combineAction.setDisplayTextFontColourHex(action.getDisplayTextFontColourHex()); + combineAction.setDisplayText(getAction().getDisplayText()); + combineAction.setName(getAction().getName()); + combineAction.setID(getAction().getID()); + combineAction.setLocation(getAction().getLocation()); + combineAction.setBgColourHex(getAction().getBgColourHex()); + combineAction.setParent(getAction().getParent()); + combineAction.getClientProperties().set(getAction().getClientProperties()); + combineAction.setDisplayTextAlignment(getAction().getDisplayTextAlignment()); + combineAction.setIcons(getAction().getIcons()); + combineAction.setCurrentIconState(getAction().getCurrentIconState()); + combineAction.setDisplayTextFontColourHex(getAction().getDisplayTextFontColourHex()); return combineAction; } @@ -782,9 +811,9 @@ public class ActionDetailsPane extends V new HBoxInputBox("Delay before running (milli-seconds)", delayBeforeRunningTextField, 100) ); - for(int i =0;i< action.getClientProperties().getSize(); i++) + for(int i =0;i< getAction().getClientProperties().getSize(); i++) { - Property eachProperty = action.getClientProperties().get().get(i); + Property eachProperty = getAction().getClientProperties().get().get(i); if(!eachProperty.isVisible()) continue; @@ -951,6 +980,8 @@ public class ActionDetailsPane extends V @Override public void saveAction(Action action, boolean runAsync, boolean runOnActionSavedFromServer) { + logger.info("gOAT@ :"+action.getProfileID()); + new OnSaveActionTask( ClientConnections.getInstance().getClientConnectionBySocketAddress( getClient().getRemoteSocketAddress() @@ -960,7 +991,7 @@ public class ActionDetailsPane extends V displayNameTextField.getText(), isCombineChild(), !hideDisplayTextCheckBox.isSelected(), - displayTextColourDefaultCheckBox.isSelected(), + displayTextColourDefaultCheckBox.isSelected(), "#" + displayTextColourPicker.getValue().toString().substring(2), clearIconButton.isDisable(), hideDefaultIconCheckBox.isSelected(), @@ -969,7 +1000,7 @@ public class ActionDetailsPane extends V displayTextAlignmentComboBox.getSelectionModel().getSelectedItem(), actionBackgroundColourTransparentCheckBox.isSelected(), "#" + actionBackgroundColourPicker.getValue().toString().substring(2), - getCombineActionPropertiesPane(), + getCombineActionPropertiesPane(), clientProfile, sendIcon, actionBox, actionClientProperties, exceptionAndAlertHandler, saveButton, deleteButton, runOnActionSavedFromServer, runAsync ); @@ -978,7 +1009,9 @@ public class ActionDetailsPane extends V @Override public void saveAction(boolean runAsync, boolean runOnActionSavedFromServer) { - saveAction(action, runAsync, runOnActionSavedFromServer); + logger.info("ENGREJDERMAARBOOR:"+getAction().getProfileID()); + logger.info("ENGREJDERMAARBOOR:"+getAction().getDisplayText()); + saveAction(getAction(), runAsync, runOnActionSavedFromServer); } public void setFolderButtonVisible(boolean visible) @@ -999,9 +1032,9 @@ public class ActionDetailsPane extends V if(!isCombineChild()) { - if(action.getActionType() == ActionType.NORMAL) + if(getAction().getActionType() == ActionType.NORMAL) { - if(action.isHasIcon()) + if(getAction().isHasIcon()) { if(hideDisplayTextCheckBox.isSelected() && hideDefaultIconCheckBox.isSelected()) { @@ -1016,7 +1049,7 @@ public class ActionDetailsPane extends V } } - if(action.getActionType() == ActionType.NORMAL) + if(getAction().getActionType() == ActionType.NORMAL) { try { @@ -1078,7 +1111,7 @@ public class ActionDetailsPane extends V ), action, isCombineChild(), - getCombineActionPropertiesPane(), + getCombineActionPropertiesPane(), clientProfile, actionBox, this, exceptionAndAlertHandler, !isCombineChild ); --- '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 @@ -17,6 +17,8 @@ public interface ActionDetailsPaneListen void setSendIcon(boolean sendIcon); + void setAction(Action action); + void onOpenFolderButtonClicked(); Window getCurrentWindow(); --- '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 @@ -196,7 +196,7 @@ public class OnSaveActionTask extends Ta { logger.info("Saving action ... "+action.isHasIcon()+"+"+sendIcon); - + logger.info("BOKA!! : "+action.getProfileID()); if(runOnActionSavedFromServer) { @@ -209,7 +209,10 @@ public class OnSaveActionTask extends Ta try { if(action instanceof ExternalPlugin) + { + System.out.println(action.getSocketAddressForClient()); ((ExternalPlugin) action).onActionSavedFromServer(); + } } catch (Exception e) { @@ -237,8 +240,8 @@ public class OnSaveActionTask extends Ta setSaveDeleteButtonState(false); } - //clientProfile.removeActionByID(action.getID()); - //clientProfile.addAction(action); + clientProfile.removeActionByID(action.getID()); + clientProfile.addAction(action); } catch (SevereException e) --- '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 @@ -147,7 +147,8 @@ public class ActionBox extends StackPane newAction.setLocation(new Location(getRow(), getCol())); - newAction.setProfileID(actionGridPaneListener.getCurrentProfile().getID()); + + System.out.println("@@#$#$#$ :"+newAction.getProfileID()); newAction.setParent(actionGridPaneListener.getCurrentParent()); newAction.setSocketAddressForClient(actionGridPaneListener.getClientConnection().getRemoteSocketAddress()); @@ -160,12 +161,15 @@ public class ActionBox extends StackPane exceptionAndAlertHandler.handleMinorException(new MinorException("Error","onCreate() failed for "+action.getModuleName()+"\n\n"+e.getMessage())); } - actionGridPaneListener.addActionToCurrentClientProfile(newAction); + newAction.setProfileID(actionGridPaneListener.getCurrentProfile().getID()); + newAction.setSocketAddressForClient(actionGridPaneListener.getClientConnection().getRemoteSocketAddress()); + + actionGridPaneListener.addActionToCurrentClientProfile(newAction); setAction(newAction); - + init(); actionDetailsPaneListener.onActionClicked(newAction, this); @@ -199,7 +203,6 @@ public class ActionBox extends StackPane if(newAction.isHasIcon()) actionDetailsPaneListener.setSendIcon(true); - actionDetailsPaneListener.saveAction(true, false); } } @@ -216,9 +219,9 @@ public class ActionBox extends StackPane }); setOnDragDetected(mouseEvent -> { - if(action!=null) + if(getAction()!=null) { - if(action.getActionType() == ActionType.NORMAL) + if(getAction().getActionType() == ActionType.NORMAL) { Dragboard db = startDragAndDrop(TransferMode.ANY); @@ -249,7 +252,7 @@ public class ActionBox extends StackPane { if(mouseEvent.getButton().equals(MouseButton.PRIMARY)) { - if(mouseEvent.getClickCount() == 2 && action.getActionType() == ActionType.FOLDER) + if(mouseEvent.getClickCount() == 2 && getAction().getActionType() == ActionType.FOLDER) { getActionDetailsPaneListener().onOpenFolderButtonClicked(); } @@ -268,7 +271,7 @@ public class ActionBox extends StackPane } else if(mouseEvent.getButton().equals(MouseButton.SECONDARY)) { - if(action.getActionType() == ActionType.TOGGLE) + if(getAction().getActionType() == ActionType.TOGGLE) { toggleStateContextMenu.show(this, mouseEvent.getScreenX(), mouseEvent.getScreenY()); @@ -442,8 +445,8 @@ public class ActionBox extends StackPane public void init() { - if(action.isShowDisplayText()) - setDisplayTextLabel(action.getDisplayText()); + if(getAction().isShowDisplayText()) + setDisplayTextLabel(getAction().getDisplayText()); else setDisplayTextLabel(""); --- 'a/src/main/java/com/stream_pi/server/window/settings/PluginsSettings.java' +++ b/src/main/java/com/stream_pi/server/window/settings/PluginsSettings.java @@ -356,10 +356,10 @@ public class PluginsSettings extends VBo vBox.setSpacing(5.0); vBox.getChildren().addAll(headerHBox, authorLabel, moduleLabel, versionLabel, serverPropertiesVBox); - if(action.getButtonBar()!=null) + if(action.getServerSettingsButtonBar()!=null) { - action.getButtonBar().getStyleClass().add("plugins_settings_each_plugin_button_bar"); - HBox buttonBarHBox = new HBox(SpaceFiller.horizontal(), action.getButtonBar()); + action.getServerSettingsButtonBar().getStyleClass().add("plugins_settings_each_plugin_button_bar"); + HBox buttonBarHBox = new HBox(SpaceFiller.horizontal(), action.getServerSettingsButtonBar()); buttonBarHBox.getStyleClass().add("plugins_settings_each_plugin_button_bar_hbox"); vBox.getChildren().add(buttonBarHBox); }