From: Debayan Sutradhar Date: Fri, 09 Apr 2021 02:27:55 +0530 Subject: Fixed folder and combine related issues --- Fixed folder and combine related issues --- --- 'a/src/main/java/com/stream_pi/server/connection/ClientConnection.java' +++ b/src/main/java/com/stream_pi/server/connection/ClientConnection.java @@ -10,6 +10,8 @@ import com.stream_pi.action_api.actionpr import com.stream_pi.action_api.externalplugin.ExternalPlugin; import com.stream_pi.action_api.externalplugin.NormalAction; import com.stream_pi.action_api.externalplugin.ToggleAction; +import com.stream_pi.action_api.otheractions.CombineAction; +import com.stream_pi.action_api.otheractions.FolderAction; import com.stream_pi.server.action.ExternalPlugins; import com.stream_pi.server.client.Client; import com.stream_pi.server.client.ClientProfile; @@ -524,7 +526,7 @@ public class ClientConnection extends Th //action toBeAdded = null; - boolean createBasicAction = false; + boolean isInvalidAction = false; if(actionType == ActionType.NORMAL || actionType == ActionType.TOGGLE) { @@ -535,13 +537,13 @@ public class ClientConnection extends Th if(originalAction == null) { - createBasicAction = true; + isInvalidAction = true; } else { if(originalAction.getVersion().getMajor() != version.getMajor()) { - createBasicAction = true; + isInvalidAction = true; } else { @@ -596,65 +598,65 @@ public class ClientConnection extends Th { exceptionAndAlertHandler.handleMinorException(new MinorException("action", "Unable to clone")); } + + return; } } } - else - { - createBasicAction = true; - } - - - if(createBasicAction) - { - - Action action = new Action(ID, actionType); - - action.setID(ID); - action.setProfileID(profileID); - action.setSocketAddressForClient(socket.getRemoteSocketAddress()); - action.setBgColourHex(bgColorHex); - action.setCurrentIconState(defaultIconState); - action.setShowDisplayText(isShowDisplayText); - action.setDisplayTextFontColourHex(displayFontColor); - action.setDisplayText(displayText); - action.setDisplayTextAlignment(displayTextAlignment); + Action action = null; - action.setLocation(location); - - action.setParent(root); - - action.setDelayBeforeExecuting(delayBeforeRunning); + if(isInvalidAction) + { + String moduleName = r[4]; + Version version = new Version(r[3]); - if(actionType == ActionType.NORMAL || actionType == ActionType.TOGGLE) + action = new Action(); + action.setInvalid(true); + action.setVersion(version); + action.setModuleName(moduleName); + } + else + { + if(actionType == ActionType.COMBINE) { - String moduleName = r[4]; - Version version = new Version(r[3]); - - action.setInvalid(true); - action.setVersion(version); - action.setModuleName(moduleName); + action = new CombineAction(); } + else if(actionType == ActionType.FOLDER) + { + action = new FolderAction(); + } + } + action.setID(ID); + action.setProfileID(profileID); + action.setSocketAddressForClient(socket.getRemoteSocketAddress()); - action.setClientProperties(clientProperties); + action.setBgColourHex(bgColorHex); + action.setCurrentIconState(defaultIconState); - try - { - getClient().getProfileByID(profileID).addAction(action); - } - catch (CloneNotSupportedException e) - { - e.printStackTrace(); - exceptionAndAlertHandler.handleMinorException(new MinorException("action", "Unable to clone")); - } + action.setShowDisplayText(isShowDisplayText); + action.setDisplayTextFontColourHex(displayFontColor); + action.setDisplayText(displayText); + action.setDisplayTextAlignment(displayTextAlignment); - } + action.setLocation(location); + + action.setParent(root); + action.setClientProperties(clientProperties); + try + { + getClient().getProfileByID(profileID).addAction(action); + } + catch (CloneNotSupportedException e) + { + e.printStackTrace(); + exceptionAndAlertHandler.handleMinorException(new MinorException("action", "Unable to clone")); + } } public synchronized void saveActionDetails(String profileID, Action action) throws SevereException --- '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 @@ -533,8 +533,6 @@ public class ActionDetailsPane extends V setAction(action); this.actionBox = actionBox; - System.out.println(getAction().getProfileID()+"KOBAAA"); - renderActionProperties(); } @@ -770,7 +768,7 @@ public class ActionDetailsPane extends V { try { - combineActionPropertiesPane = new CombineActionPropertiesPane(getActionAsCombineAction(action), + combineActionPropertiesPane = new CombineActionPropertiesPane((CombineAction) getAction(), getClientProfile(), this ); @@ -789,47 +787,10 @@ public class ActionDetailsPane extends V this.action = action; } - public FolderAction getActionAsFolderAction(Action action) - { - FolderAction folderAction = new FolderAction(); - 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; - } - - public CombineAction getActionAsCombineAction(Action action) - { - CombineAction combineAction = new CombineAction(); - 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; - } - @Override public void onOpenFolderButtonClicked() { - FolderAction folderAction = getActionAsFolderAction(action); - actionBox.getActionGridPaneListener().renderFolder(folderAction); + actionBox.getActionGridPaneListener().renderFolder((FolderAction) getAction()); clear(); } @@ -1019,7 +980,7 @@ public class ActionDetailsPane extends V } @Override - public void saveAction(Action action, boolean runAsync, boolean runOnActionSavedFromServer) + public synchronized void saveAction(Action action, boolean runAsync, boolean runOnActionSavedFromServer) { String delayBeforeRunning = "0"; if(action.getActionType() != ActionType.FOLDER && action.getActionType() !=ActionType.COMBINE) --- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/CombineActionPropertiesPane.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/CombineActionPropertiesPane.java @@ -92,7 +92,7 @@ public class CombineActionPropertiesPane public void onSettingsButtonClicked(Action action) { - actionDetailsPane.clear(); + actionDetailsPane.clear(false); actionDetailsPane.setAction(action); try { actionDetailsPane.renderActionProperties(); --- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/OnDeleteActionTask.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/OnDeleteActionTask.java @@ -73,6 +73,24 @@ public class OnDeleteActionTask extends } } + Action a = clientProfile.getActionByID(action.getID()); + if(a instanceof ExternalPlugin) + { + try + { + ((ExternalPlugin) a).onActionDeleted(); + } + catch (Exception e) + { + e.printStackTrace(); + exceptionAndAlertHandler.handleMinorException( + new MinorException("failed at onActionDeleted for "+a.getModuleName(), + "Detailed Message : "+e.getMessage()) + ); + } + } + + connection.deleteAction(clientProfile.getID(), action.getID()); clientProfile.removeActionByID(action.getID()); @@ -87,10 +105,11 @@ public class OnDeleteActionTask extends try { - - actionDetailsPane.saveAction(combineActionPropertiesPane.getCombineAction(), true,true); - - System.out.println(combineActionPropertiesPane.getCombineAction().getDisplayText()+"@#@#@#@#@#@#"); + + System.out.println(combineActionPropertiesPane.getCombineAction().getDisplayText()); + + connection.saveActionDetails(clientProfile.getID(), combineActionPropertiesPane.getCombineAction()); + actionDetailsPane.onActionClicked( combineActionPropertiesPane.getCombineAction(), actionBox