server
Clone or download
Modified Files
--- '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<String, ActionBox> 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();
M
src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionGridPaneListener.java
+2
−0
--- '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();