From: Debayan Sutradhar Date: Thu, 01 Apr 2021 01:38:09 +0530 Subject: fixed lots of stuff, and added lots of stufffff --- fixed lots of stuff, and added lots of stufffff --- --- 'a/src/main/java/com/stream_pi/server/connection/ClientConnection.java' +++ b/src/main/java/com/stream_pi/server/connection/ClientConnection.java @@ -16,6 +16,7 @@ import com.stream_pi.server.client.Clien import com.stream_pi.server.client.ClientTheme; import com.stream_pi.server.info.ServerInfo; import com.stream_pi.server.window.ExceptionAndAlertHandler; +import com.stream_pi.server.window.dashboard.actiongridpane.ActionBox; import com.stream_pi.util.alert.StreamPiAlert; import com.stream_pi.util.alert.StreamPiAlertType; import com.stream_pi.util.comms.Message; @@ -519,6 +520,7 @@ public class ClientConnection extends Th ExternalPlugin newPlugin = originalAction.clone(); newPlugin.setID(ID); + System.out.println("SAVVEEEEEEEEEEEEEEE@@@@@ : "+profileID); newPlugin.setProfileID(profileID); newPlugin.setSocketAddressForClient(socket.getRemoteSocketAddress()); @@ -557,6 +559,8 @@ public class ClientConnection extends Th newPlugin.setClientProperties(finalClientProperties); getClient().getProfileByID(profileID).addAction(newPlugin); + + } catch (CloneNotSupportedException e) { @@ -815,7 +819,7 @@ public class ClientConnection extends Th { try { - boolean result = serverListener.onToggleActionClicked((ToggleAction) action, toggle); + boolean result = serverListener.onToggleActionClicked((ToggleAction) action, toggle, profileID); if(!result) { sendActionFailed(profileID, actionID); @@ -841,7 +845,7 @@ public class ClientConnection extends Th { try { - boolean result = serverListener.onNormalActionClicked((NormalAction) action); + boolean result = serverListener.onNormalActionClicked((NormalAction) action, profileID); if(!result) { sendActionFailed(profileID, actionID); --- 'a/src/main/java/com/stream_pi/server/connection/MainServer.java' +++ b/src/main/java/com/stream_pi/server/connection/MainServer.java @@ -91,7 +91,7 @@ public class MainServer extends Thread{ } catch (SocketException e) { - if(!e.getMessage().contains("Socket closed")) + if(!e.getMessage().contains("Socket closed") && !e.getMessage().contains("Interrupted function call: accept failed")) { logger.info("Main Server stopped accepting calls ..."); --- 'a/src/main/java/com/stream_pi/server/connection/ServerListener.java' +++ b/src/main/java/com/stream_pi/server/connection/ServerListener.java @@ -9,8 +9,8 @@ import javafx.stage.Stage; public interface ServerListener { - boolean onNormalActionClicked(NormalAction action); - boolean onToggleActionClicked(ToggleAction action, boolean toggle); + boolean onNormalActionClicked(NormalAction action, String profileID); + boolean onToggleActionClicked(ToggleAction action, boolean toggle, String profileID); void clearTemp(); --- 'a/src/main/java/com/stream_pi/server/controller/Controller.java' +++ b/src/main/java/com/stream_pi/server/controller/Controller.java @@ -17,6 +17,7 @@ import com.stream_pi.server.window.Base; import com.stream_pi.server.window.dashboard.ClientAndProfileSelectorPane; import com.stream_pi.server.window.dashboard.DashboardBase; import com.stream_pi.server.window.dashboard.DonatePopupContent; +import com.stream_pi.server.window.dashboard.actiongridpane.ActionBox; import com.stream_pi.server.window.firsttimeuse.FirstTimeUse; import com.stream_pi.util.alert.StreamPiAlert; import com.stream_pi.util.alert.StreamPiAlertListener; @@ -476,11 +477,22 @@ public class Controller extends Base imp } @Override - public synchronized boolean onNormalActionClicked(NormalAction action) { + public synchronized boolean onNormalActionClicked(NormalAction action, String profileID) { try{ getLogger().info("action "+action.getID()+" clicked!"); action.onActionClicked(); + + ActionBox actionBox = getDashboardBase().getActionGridPane().getActionBoxByIDAndProfileID( + action.getID(), + profileID + ); + + if(actionBox != null) + { + Platform.runLater(actionBox::init); + } + return true; } catch (Exception e) @@ -507,10 +519,13 @@ public class Controller extends Base imp } @Override - public boolean onToggleActionClicked(ToggleAction action, boolean toggle) { + public boolean onToggleActionClicked(ToggleAction action, boolean toggle, String profileID) + { try{ getLogger().info("action "+action.getID()+" clicked!"); + + if(toggle) { action.onToggleOn(); @@ -519,10 +534,22 @@ public class Controller extends Base imp { action.onToggleOff(); } + +// ActionBox actionBox = getDashboardBase().getActionGridPane().getActionBoxByIDAndProfileID( +// action.getID(), +// profileID +// ); +// +// if(actionBox != null) +// { +// Platform.runLater(()->actionBox.init(toggle)); +// } + return true; } catch (Exception e) { + e.printStackTrace(); //check if its windows UAC related if(e.getMessage().contains("operation requires elevation")) { @@ -587,19 +614,24 @@ public class Controller extends Base imp Platform.runLater(()->{ try { - if(getDashboardPane().getActionGridPane().getCurrentParent().equals(action.getParent()) && - getDashboardPane().getClientAndProfileSelectorPane().getCurrentSelectedClientProfile().getID().equals(profileID) && - getDashboardPane().getClientAndProfileSelectorPane().getCurrentSelectedClientConnection().getRemoteSocketAddress().equals(socketAddress)) - { - getDashboardPane().getActionGridPane().renderAction(action); - } +// if(getDashboardPane().getActionGridPane().getCurrentParent().equals(action.getParent()) && +// getDashboardPane().getClientAndProfileSelectorPane().getCurrentSelectedClientProfile().getID().equals(profileID) && +// getDashboardPane().getClientAndProfileSelectorPane().getCurrentSelectedClientConnection().getRemoteSocketAddress().equals(socketAddress)) +// { +// getDashboardPane().getActionGridPane().renderAction(action); +// } - if(getDashboardPane().getActionDetailsPane().getAction().getID().equals(actionID)) + if(getDashboardBase().getActionDetailsPane().getAction() != null) { - getDashboardPane().getActionDetailsPane().setAction(action); - getDashboardPane().getActionDetailsPane().refresh(); + // This block is executed when no Action is selected. + if(getDashboardPane().getActionDetailsPane().getAction().getID().equals(actionID)) + { + getDashboardPane().getActionDetailsPane().setAction(action); + getDashboardPane().getActionDetailsPane().refresh(); + } } + } catch (Exception e) { --- '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 @@ -707,6 +707,8 @@ public class ActionDetailsPane extends V { ExternalPlugin externalPlugin = (ExternalPlugin) getAction(); + externalPlugin.initClientActionSettingsButtonBar(); + if(externalPlugin.getClientActionSettingsButtonBar() != null) { HBox tba = new HBox(SpaceFiller.horizontal(), externalPlugin.getClientActionSettingsButtonBar()); --- '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 @@ -445,6 +445,11 @@ public class ActionBox extends StackPane public void init() { + init(false); + } + + public void init(boolean start) + { if(getAction().isShowDisplayText()) setDisplayTextLabel(getAction().getDisplayText()); else @@ -460,7 +465,7 @@ public class ActionBox extends StackPane try { if(action.getActionType() == ActionType.TOGGLE) { - fakeToggle(false); + fakeToggle(start); } else { @@ -484,7 +489,7 @@ public class ActionBox extends StackPane }); } - private void fakeToggle(boolean isON) + public void fakeToggle(boolean isON) { System.out.println("CURRENT ICONS : "+action.getCurrentIconState()); String[] toggleStatesHiddenStatus = action.getCurrentIconState().split("__"); --- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionGridPane.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionGridPane.java @@ -26,6 +26,7 @@ import javafx.scene.control.ScrollPane; import javafx.scene.layout.*; import org.kordamp.ikonli.javafx.FontIcon; +import java.util.HashMap; import java.util.logging.Logger; public class ActionGridPane extends ScrollPane implements ActionGridPaneListener { @@ -36,6 +37,9 @@ public class ActionGridPane extends Scro public ActionGridPane(ExceptionAndAlertHandler exceptionAndAlertHandler) { logger = Logger.getLogger(ActionGridPane.class.getName()); + + actionBoxHashMap = new HashMap<>(); + this.exceptionAndAlertHandler = exceptionAndAlertHandler; getStyleClass().add("action_grid_pane_parent"); @@ -51,6 +55,25 @@ public class ActionGridPane extends Scro setCacheHint(CacheHint.SPEED); } + private HashMap actionBoxHashMap; + + public ActionBox getActionBoxByIDAndProfileID(String actionID, String profileID) + { + // Returns null when there is no such action available + + if(getClientProfile() == null) + { + return null; + } + + if(!getClientProfile().getID().equals(profileID)) + { + return null; + } + + return actionBoxHashMap.getOrDefault(actionID, null); + } + public void setActionDetailsPaneListener(ActionDetailsPaneListener actionDetailsPaneListener) { this.actionDetailsPaneListener = actionDetailsPaneListener; } @@ -299,6 +322,7 @@ public class ActionGridPane extends Scro public void clear() { + actionBoxHashMap.clear(); actionsGridPane.getChildren().clear(); } @@ -333,6 +357,8 @@ public class ActionGridPane extends Scro actionBox.init(); + actionBoxHashMap.put(action.getID(), actionBox); + /*ActionBox actionBox = new ActionBox(Config.getInstance().getActionGridActionSize(), action, actionDetailsPaneListener, exceptionAndAlertHandler, this); Location location = action.getLocation(); --- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionGridPaneListener.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionGridPaneListener.java @@ -11,6 +11,8 @@ public interface ActionGridPaneListener { void addActionToCurrentClientProfile(Action newAction); + ActionBox getActionBoxByIDAndProfileID(String actionID, String profileID); + void renderFolder(FolderAction action); String getCurrentParent();