From 7a61bafdcf9cc026d663ad4a4b8d6cd848176b24 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Mon, 19 Jun 2017 17:18:14 +0000 Subject: [PATCH] ref 8819: Extend The Algorithms Importer to Manage Many Processes as Black Boxes https://support.d4science.org/issues/8819 Updated the support for Processes as Black Boxes git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/statistical-algorithms-importer@150440 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/StatAlgoImporterController.java | 31 +++++++-- .../client/project/ProjectManager.java | 64 +++++++++++++++++-- .../tools/input/InputVariablePanel.java | 10 +-- 3 files changed, 87 insertions(+), 18 deletions(-) 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 bd38351..ca87491 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,10 +56,12 @@ public class StatAlgoImporterController { private StatAlgoImporterMonitor monitor; private enum InputRequestType { - Save, SoftwareCreate; + Save, MainCodeSet, BinaryCodeSet, SoftwareCreate; } private InputRequestType inputRequestType; + private ItemDescription mainCodeItemDescription; + private ItemDescription binaryCodeItemDescription; public StatAlgoImporterController() { eventBus = new SimpleEventBus(); @@ -352,6 +354,12 @@ public class StatAlgoImporterController { case SoftwareCreate: pm.softwareCreate(event.getInputData(), monitor); break; + case MainCodeSet: + pm.setMainCode(event.getInputData(), mainCodeItemDescription); + break; + case BinaryCodeSet: + pm.setBinaryCode(event.getInputData(), binaryCodeItemDescription); + break; default: break; @@ -427,17 +435,26 @@ public class StatAlgoImporterController { } private void doMainCodeSetCommand(MainCodeSetEvent event) { - ItemDescription itemDescription = event.getItemDescription(); - if (itemDescription != null && itemDescription.getId() != null) { - pm.setMainCode(itemDescription); + ItemDescription mainCodeItemDesc = event.getItemDescription(); + if (mainCodeItemDesc != null && mainCodeItemDesc.getId() != null) { + mainCodeItemDescription=mainCodeItemDesc; + inputRequestType = InputRequestType.MainCodeSet; + InputRequestEvent inputRequestEvent = new InputRequestEvent(); + eventBus.fireEvent(inputRequestEvent); + Log.debug("ProjectMainCodeSetRequest: " + inputRequestEvent); + } } private void doBinaryCodeSetCommand(BinaryCodeSetEvent event) { - ItemDescription itemDescription = event.getItemDescription(); - if (itemDescription != null && itemDescription.getId() != null) { - pm.setBinaryCode(itemDescription); + ItemDescription binaryCodeItemDesc = event.getItemDescription(); + if (binaryCodeItemDesc != null && binaryCodeItemDesc.getId() != null) { + binaryCodeItemDescription=binaryCodeItemDesc; + inputRequestType = InputRequestType.BinaryCodeSet; + InputRequestEvent inputRequestEvent = new InputRequestEvent(); + eventBus.fireEvent(inputRequestEvent); + Log.debug("ProjectBinaryCodeSetRequest: " + inputRequestEvent); } } 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 d1f1aeb..a73515a 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 @@ -433,7 +433,7 @@ public class ProjectManager { } - public void setMainCode(final ItemDescription itemDescription) { + public void setMainCode(final InputData inputData, final ItemDescription itemDescription) { if (project != null) { if (project.getMainCode() != null && project.getMainCode().getItemDescription() != null) { final ConfirmMessageBox mb = new ConfirmMessageBox("Attention", @@ -444,11 +444,14 @@ public class ProjectManager { public void onDialogHide(DialogHideEvent event) { switch (event.getHideButton()) { case NO: + mb.hide(); break; case YES: - setMainCodeOnServer(itemDescription); + mb.hide(); + saveInputDataForMainSet(inputData,itemDescription); break; default: + break; } @@ -457,14 +460,40 @@ public class ProjectManager { mb.setWidth(300); mb.show(); } else { - setMainCodeOnServer(itemDescription); + saveInputDataForMainSet(inputData, itemDescription); } } else { - + } } + + private void saveInputDataForMainSet(final InputData inputData, final ItemDescription itemDescription){ + StatAlgoImporterServiceAsync.INSTANCE.saveProject(inputData, new AsyncCallback() { + + @Override + public void onSuccess(Void result) { + setMainCodeOnServer(itemDescription); + /* + UtilsGXT3.info("Save", "Project saved!"); + fireProjectStatusExplorerRefreshEvent();*/ + } + + @Override + public void onFailure(Throwable caught) { + if (caught instanceof StatAlgoImporterSessionExpiredException) { + eventBus.fireEvent(new SessionExpiredEvent(SessionExpiredType.EXPIREDONSERVER)); + } else { + Log.error("Error on save project: " + caught.getLocalizedMessage()); + UtilsGXT3.alert("Error", caught.getLocalizedMessage()); + } + caught.printStackTrace(); + + } + }); + } + private void setMainCodeOnServer(final ItemDescription itemDescription) { @@ -519,11 +548,11 @@ public class ProjectManager { }); } - public void setBinaryCode(final ItemDescription itemDescription) { + public void setBinaryCode(final InputData inputData,final ItemDescription itemDescription) { if (project != null) { if (project.getProjectConfig() != null && project.getProjectConfig().getProjectSupport() != null && project.getProjectConfig().getProjectSupport() instanceof ProjectSupportBlackBox) { - setBinaryCodeOnServer(itemDescription); + saveInputDataForBinarySet(inputData,itemDescription); } } else { @@ -531,6 +560,29 @@ public class ProjectManager { } } + + private void saveInputDataForBinarySet(final InputData inputData, final ItemDescription itemDescription){ + StatAlgoImporterServiceAsync.INSTANCE.saveProject(inputData, new AsyncCallback() { + + @Override + public void onSuccess(Void result) { + setBinaryCodeOnServer(itemDescription); + } + + @Override + public void onFailure(Throwable caught) { + if (caught instanceof StatAlgoImporterSessionExpiredException) { + eventBus.fireEvent(new SessionExpiredEvent(SessionExpiredType.EXPIREDONSERVER)); + } else { + Log.error("Error on save project: " + caught.getLocalizedMessage()); + UtilsGXT3.alert("Error", caught.getLocalizedMessage()); + } + caught.printStackTrace(); + + } + }); + } + private void setBinaryCodeOnServer(final ItemDescription itemDescription) { diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariablePanel.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariablePanel.java index d08605b..23961cf 100644 --- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariablePanel.java +++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariablePanel.java @@ -43,7 +43,7 @@ public class InputVariablePanel extends ContentPanel { } - protected void init() { + private void init() { setId("InputVariablePanel"); setHeaderVisible(true); setAnimCollapse(false); @@ -55,7 +55,7 @@ public class InputVariablePanel extends ContentPanel { } - protected void bindToEvents() { + private void bindToEvents() { eventBus.addHandler(ProjectStatusEvent.TYPE, new ProjectStatusEvent.ProjectStatusEventHandler() { @@ -94,17 +94,17 @@ public class InputVariablePanel extends ContentPanel { Log.debug("InputVariablePanel bind to Event do!"); } - protected void addNewSelectedRowsVariable( + private void addNewSelectedRowsVariable( InputOutputVariables selectedRowsVariable) { inputVariableTabPanel.addSelectedRowsVariable(selectedRowsVariable); } - protected void manageInputRequestEvents(InputRequestEvent event) { + private void manageInputRequestEvents(InputRequestEvent event) { inputVariableTabPanel.requestInput(); } - protected void manageProjectStatusEvents(ProjectStatusEvent event) { + private void manageProjectStatusEvents(ProjectStatusEvent event) { Log.debug("InputVariablePanel recieved event ProjectStatus: " + event.toString()); switch (event.getProjectStatusEventType()) {