diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/StatAlgoImporterController.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/StatAlgoImporterController.java index 0eef35f..937cb7d 100644 --- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/StatAlgoImporterController.java +++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/StatAlgoImporterController.java @@ -56,12 +56,15 @@ public class StatAlgoImporterController { private StatAlgoImporterMonitor monitor; private enum InputRequestType { - Save, MainCodeSet, BinaryCodeSet, SoftwareCreate; + Save, NewMainCodeSet, MainCodeSet, BinaryCodeSet, SoftwareCreate; } private InputRequestType inputRequestType; + private NewCodeEvent newCodeEvent; private ItemDescription mainCodeItemDescription; private ItemDescription binaryCodeItemDescription; + + public StatAlgoImporterController() { eventBus = new SimpleEventBus(); @@ -321,10 +324,10 @@ public class StatAlgoImporterController { UtilsGXT3.alert("Attention", event.getError()); return; } else { - if(inputRequestType==null){ + if (inputRequestType == null) { return; } - + switch (inputRequestType) { case Save: pm.saveProject(event.getInputData(), monitor); @@ -332,6 +335,9 @@ public class StatAlgoImporterController { case SoftwareCreate: pm.softwareCreate(event.getInputData(), monitor); break; + case NewMainCodeSet: + pm.setNewCode(event.getInputData(),newCodeEvent, monitor); + break; case MainCodeSet: pm.setMainCode(event.getInputData(), mainCodeItemDescription); break; @@ -359,9 +365,9 @@ public class StatAlgoImporterController { final ConfirmMessageBox mb = new ConfirmMessageBox("Attention", "The creation of new software will overwrite the possible previous version, moreover" - + " the compiled software will be notified to the Infrastructure Administrators" - + " and will be published in the suggested VREs. The source code will not be shared." - + " Do you confirm the submission?"); + + " the compiled software will be notified to the Infrastructure Administrators" + + " and will be published in the suggested VREs. The source code will not be shared." + + " Do you confirm the submission?"); mb.addDialogHideHandler(new DialogHideHandler() { @Override @@ -386,8 +392,6 @@ public class StatAlgoImporterController { mb.show(); } - - private void softwareRepackage() { pm.softwareRepackage(); @@ -438,10 +442,16 @@ public class StatAlgoImporterController { private void doSetNewMainCodeEvent(NewCodeEvent event) { monitor = new StatAlgoImporterMonitor(); - pm.setNewCode(event, monitor); + newCodeEvent = event; + inputRequestType = InputRequestType.NewMainCodeSet; + InputRequestEvent inputRequestEvent = new InputRequestEvent(); + eventBus.fireEvent(inputRequestEvent); + Log.debug("ProjectNewMainCodeSetRequest: " + inputRequestEvent); } + + private void doDeleteItemCommand(DeleteItemEvent event) { ItemDescription itemDescription = event.getItemDescription(); if (itemDescription != null && itemDescription.getId() != null) { diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/NewCodeEvent.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/NewCodeEvent.java index e0b1dda..1bd657a 100644 --- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/NewCodeEvent.java +++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/NewCodeEvent.java @@ -55,7 +55,7 @@ public class NewCodeEvent extends GwtEvent { source.fireEvent(saveNewMainCodeEvent); } - public CodeContentType getCodeType() { + public CodeContentType getCodeContentType() { return codeContentType; } @@ -72,6 +72,4 @@ public class NewCodeEvent extends GwtEvent { return "NewCodeEvent [codeContentType=" + codeContentType + ", file=" + file + ", code=" + code + "]"; } - - } diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/project/ProjectManager.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/project/ProjectManager.java index ab150be..53d33c7 100644 --- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/project/ProjectManager.java +++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/project/ProjectManager.java @@ -529,8 +529,8 @@ public class ProjectManager { } - public void setNewCode(NewCodeEvent newCodeEvent, final StatAlgoImporterMonitor monitor) { - StatAlgoImporterServiceAsync.INSTANCE.setNewCode(newCodeEvent.getFile(), newCodeEvent.getCode(), + public void setNewCode(InputData inputData, NewCodeEvent newCodeEvent, final StatAlgoImporterMonitor monitor) { + StatAlgoImporterServiceAsync.INSTANCE.setNewCode(inputData, newCodeEvent.getFile(), newCodeEvent.getCode(), new AsyncCallback() { @Override diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterService.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterService.java index a29ee73..870ac5d 100644 --- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterService.java +++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterService.java @@ -36,7 +36,8 @@ public interface StatAlgoImporterService extends RemoteService { * Retrieve SAI descriptort * * @return SAI descriptort - * @throws StatAlgoImporterServiceException Exception + * @throws StatAlgoImporterServiceException + * Exception */ public SAIDescriptor getSAIDescripor() throws StatAlgoImporterServiceException; @@ -53,13 +54,14 @@ public interface StatAlgoImporterService extends RemoteService { // Code public ArrayList getCode() throws StatAlgoImporterServiceException; - public Project createProjectOnWorkspace(ProjectCreateSession projectCreateSession) throws StatAlgoImporterServiceException; + public Project createProjectOnWorkspace(ProjectCreateSession projectCreateSession) + throws StatAlgoImporterServiceException; // public Project setMainCode(ItemDescription itemDescription) throws StatAlgoImporterServiceException; - + public Project setBinaryCode(ItemDescription itemDescription) throws StatAlgoImporterServiceException; - + public void addResourceToProject(ItemDescription itemDescription) throws StatAlgoImporterServiceException; public Project deleteResourceOnProject(ItemDescription itemDescription) throws StatAlgoImporterServiceException; @@ -76,15 +78,15 @@ public interface StatAlgoImporterService extends RemoteService { public Project restoreUISession(String value) throws StatAlgoImporterServiceException; - public Project setNewCode(ItemDescription itemDescription, String code) throws StatAlgoImporterServiceException; + public Project setNewCode(InputData inputData, ItemDescription itemDescription, String code) + throws StatAlgoImporterServiceException; public String publishSoftware() throws StatAlgoImporterServiceException; public String getDeployOperationStatus(String operationId) throws StatAlgoImporterServiceException; - + public String getDeployOperationLogs(String operationId) throws StatAlgoImporterServiceException; - + public void repackageSoftware() throws StatAlgoImporterServiceException; - } diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterServiceAsync.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterServiceAsync.java index 170ac0d..67c5bbf 100644 --- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterServiceAsync.java +++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterServiceAsync.java @@ -52,7 +52,7 @@ public interface StatAlgoImporterServiceAsync { void saveCode(String code, AsyncCallback asyncCallback); - void setNewCode(ItemDescription itemDescription, String code, AsyncCallback asyncCallback); + void setNewCode(InputData inputData, ItemDescription itemDescription, String code, AsyncCallback asyncCallback); void createSoftware(InputData inputData, AsyncCallback callback); diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/StatAlgoImporterServiceImpl.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/StatAlgoImporterServiceImpl.java index a739156..a925846 100644 --- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/StatAlgoImporterServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/StatAlgoImporterServiceImpl.java @@ -593,11 +593,11 @@ public class StatAlgoImporterServiceImpl extends RemoteServiceServlet implements } @Override - public Project setNewCode(ItemDescription fileDescription, String code) throws StatAlgoImporterServiceException { + public Project setNewCode(InputData inputData,ItemDescription fileDescription, String code) throws StatAlgoImporterServiceException { try { HttpServletRequest httpRequest = this.getThreadLocalRequest(); ServiceCredentials serviceCredentials = SessionUtil.getServiceCredentials(httpRequest); - logger.debug("saveNewCode(): itemDescription" + fileDescription + ", code:" + code); + logger.debug("setNewCode(): "+inputData+", " + fileDescription + ", " + code); Project project = SessionUtil.getProjectSession(httpRequest, serviceCredentials); if (project != null && project.getProjectFolder() != null && project.getProjectFolder().getFolder() != null) { @@ -609,9 +609,9 @@ public class StatAlgoImporterServiceImpl extends RemoteServiceServlet implements code, project.getProjectFolder().getFolder().getId()); MainCode mainCode = new MainCode(mainCodeItemDescription); project.setMainCode(mainCode); - InputData inputData=project.getInputData(); if(inputData!=null){ inputData.setListInputOutputVariables(null); + project.setInputData(inputData); } project.setProjectTarget(null); WPS4RParser wps4Parser = new WPS4RParser(project, serviceCredentials); @@ -625,6 +625,7 @@ public class StatAlgoImporterServiceImpl extends RemoteServiceServlet implements ItemDescription binaryCodeItemDescription = codeSave.saveNew(serviceCredentials, fileDescription, code, project.getProjectFolder().getFolder().getId()); projectSupportBashEdit.setBinaryItem(binaryCodeItemDescription); + project.setInputData(inputData); project.setProjectTarget(null); } else { throw new StatAlgoImporterServiceException("Error in project support!");