diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/DataMinerAlgorithms.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/DataMinerAlgorithms.java index 6557036..42c3f76 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/DataMinerAlgorithms.java +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/DataMinerAlgorithms.java @@ -19,7 +19,8 @@ public enum DataMinerAlgorithms { BOXPLOT("BOXPLOT","BOXPLOT"), DEA_ANALYSIS("DEA_ANALYSIS", "DEA_ANALYSIS"), CORRELATION("CORRELATION", "CORRELATION"), - PERFORMFISH_SYNOPTICTABLE_BATCH("PERFORMFISH_SYNOPTICTABLE_BATCH", "PERFORMFISH_SYNOPTICTABLE_BATCH"); + PERFORMFISH_SYNOPTICTABLE_BATCH("PERFORMFISH_SYNOPTICTABLE_BATCH", "PERFORMFISH_SYNOPTICTABLE_BATCH"), + PERFORMFISH_SYNOPTIC_TABLE_FARM("PERFORMFISH_SYNOPTIC_TABLE_FARM","PERFORMFISH_SYNOPTIC_TABLE_FARM"); String id; String name; diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/PerformFishAnalyticsConstant.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/PerformFishAnalyticsConstant.java index 5600947..594e036 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/PerformFishAnalyticsConstant.java +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/PerformFishAnalyticsConstant.java @@ -35,7 +35,9 @@ public class PerformFishAnalyticsConstant { public static final String DM_INPUT_TABLE = "inputTable"; public static final String DM_ZONE_LABELS = "zonesLabels"; public static final String DM_QUARTER_LABELS = "quartersLabels"; + public static final String DM_ALLYEARS_PARAM = "allyears"; public static final String DM_VALUE_ALL = "ALL"; + public static final String PERFORM_FISH_AREA_PARAM = "area"; public static final String PERFORM_FISH_QUARTER_PARAM = "quarter"; diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/PerformFishAnalyticsService.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/PerformFishAnalyticsService.java index ac7aa71..869f77f 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/PerformFishAnalyticsService.java +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/PerformFishAnalyticsService.java @@ -103,4 +103,7 @@ public interface PerformFishAnalyticsService extends RemoteService { DataMinerResponse callDMServiceToLoadSynopticTable(PerformFishResponse performFishResponse, Map> mapParameters) throws Exception; + + DataMinerResponse callDMServiceToLoadSynopticAnnualTable(PerformFishResponse thePerformFishResponse, + Map> mapParameters) throws Exception; } diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/PerformFishAnalyticsServiceAsync.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/PerformFishAnalyticsServiceAsync.java index 52c64dc..9cf35f7 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/PerformFishAnalyticsServiceAsync.java +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/PerformFishAnalyticsServiceAsync.java @@ -89,4 +89,8 @@ public interface PerformFishAnalyticsServiceAsync void callDMServiceToLoadSynopticTable(PerformFishResponse performFishResponse, Map> mapParameters, AsyncCallback asyncCallback); + + + void callDMServiceToLoadSynopticAnnualTable(PerformFishResponse thePerformFishResponse, + Map> mapParameters, AsyncCallback asyncCallback); } diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/annualcontrollers/PerformFishAnnualAnalyticsController.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/annualcontrollers/PerformFishAnnualAnalyticsController.java index efa5519..72a7ea3 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/annualcontrollers/PerformFishAnnualAnalyticsController.java +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/annualcontrollers/PerformFishAnnualAnalyticsController.java @@ -18,6 +18,8 @@ import org.gcube.portlets.user.performfishanalytics.client.event.LoadFocusEvent; import org.gcube.portlets.user.performfishanalytics.client.event.LoadFocusEventHandler; import org.gcube.portlets.user.performfishanalytics.client.event.LoadPopulationTypeEvent; import org.gcube.portlets.user.performfishanalytics.client.event.LoadPopulationTypeEventHandler; +import org.gcube.portlets.user.performfishanalytics.client.event.LoadSynopticTableEvent; +import org.gcube.portlets.user.performfishanalytics.client.event.LoadSynopticTableEventHandler; import org.gcube.portlets.user.performfishanalytics.client.event.PerformFishFieldFormChangedEvent; import org.gcube.portlets.user.performfishanalytics.client.event.PerformFishFieldFormChangedEventHandler; import org.gcube.portlets.user.performfishanalytics.client.event.SelectedKPIEvent; @@ -50,6 +52,7 @@ import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.ComplexPanel; import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Panel; @@ -293,9 +296,82 @@ public class PerformFishAnnualAnalyticsController { return; } }); + + eventBus.addHandler(LoadSynopticTableEvent.TYPE, new LoadSynopticTableEventHandler() { + + @Override + public void onLoadSynopticTable(LoadSynopticTableEvent loadSynopticTableEvent) { + + callAlgorithmSynopticTableFarm(); + + } + }); } + /** + * Call algorithm synoptic table farm. + */ + protected void callAlgorithmSynopticTableFarm() { + + final DataMinerAlgorithms algorithm = DataMinerAlgorithms.PERFORMFISH_SYNOPTIC_TABLE_FARM; + final SubmitRequestPanel submitRequestPanel = new SubmitRequestPanel("", 1); + String tabTitle = "Synoptic Table"; + final Tab tab = viewAnnualController.createTab(submitRequestPanel, tabTitle+" #"+(viewAnnualController.currentNumberOfTab()+1)); + + StringBuilder dataInputsFormatter = new StringBuilder(); + Map performFishResponseMap = thePerformFishResponse.getMapParameters(); + dataInputsFormatter = appendDMInputTable(performFishResponseMap, dataInputsFormatter, PerformFishAnalyticsConstant.PFSERVICE_TO_DM_MAPPING_TABLE.LethalIncidentsTable); + dataInputsFormatter = appendDMInputTable(performFishResponseMap, dataInputsFormatter, PerformFishAnalyticsConstant.PFSERVICE_TO_DM_MAPPING_TABLE.AnnualTable); + dataInputsFormatter = appendDMInputTable(performFishResponseMap, dataInputsFormatter, PerformFishAnalyticsConstant.PFSERVICE_TO_DM_MAPPING_TABLE.AntibioticsTable); + dataInputsFormatter = appendDMInputTable(performFishResponseMap, dataInputsFormatter, PerformFishAnalyticsConstant.PFSERVICE_TO_DM_MAPPING_TABLE.AntiparasiticTable); + dataInputsFormatter.append(PerformFishAnalyticsConstant.DM_ALLYEARS_PARAM+"="+ PerformFishAnalyticsConstant.DM_VALUE_ALL +";"); + //dataInputsFormatter.append(PerformFishAnalyticsConstant.DM_ALLYEARS_PARAM+"=2016;"); + + String dataInParameters = dataInputsFormatter.toString(); + GWT.log("Calling DM service with client input parameters: "+dataInParameters); + + Map> mapParameters = new HashMap>(); + mapParameters.put(PerformFishAnalyticsConstant.DATA_INPUTS, Arrays.asList(dataInParameters)); + + final HTMLPanel panelContainer = submitRequestPanel.getContainerPanel(); + final LoaderIcon loaderIcon = new LoaderIcon("Submitting request to "+algorithm+"..."); + loaderIcon.setVisible(true); + panelContainer.setVisible(true); + panelContainer.add(loaderIcon); + Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() { + @Override + public void execute() { + loaderIcon.setFocus(true); + }}); + + PerformFishAnalyticsServiceAsync.Util.getInstance().callDMServiceToLoadSynopticAnnualTable(thePerformFishResponse, mapParameters, new AsyncCallback() { + + @Override + public void onSuccess(DataMinerResponse dmResponse) { + loaderIcon.setVisible(false); + checkTabSpinner(submitRequestPanel, tab); + //field_unary_algorithm.setVisible(true); + GWT.log("I'm displaying: "+dmResponse); + displayOutputFilesAsStaticEntities(dmResponse, algorithm, null, null, null, panelContainer, false); + } + + @Override + public void onFailure(Throwable caught) { + loaderIcon.setVisible(false); + checkTabSpinner(submitRequestPanel, tab); + displayOutputFilesAsStaticEntities(null, algorithm, null, null, null, panelContainer, true); + + } + }); + + } + + /** + * Submit request to DM. + * + * @param dmAlgorithm the dm algorithm + */ private void submitRequestToDM(DataMinerAlgorithms dmAlgorithm) { switch (dmAlgorithm) { @@ -332,8 +408,9 @@ public class PerformFishAnnualAnalyticsController { /** * Call data miner service for chart type correlation. * - * @param performFishResponse the perform fish response - * @param performFishRequestParameters the perform fish request parameters + * @param focusID the focus ID + * @param inputKPI the input KPI + * @param outputKPI the output KPI */ private void callDataMinerServiceForChartTypeCorrelation(String focusID, final List inputKPI, final List outputKPI) { @@ -611,7 +688,7 @@ public class PerformFishAnnualAnalyticsController { * @param performFishResponseMap the perform fish response map * @param dataInputsFormatter the data inputs formatter * @param table the table - * @return + * @return the string builder */ private StringBuilder appendDMInputTable(Map performFishResponseMap, StringBuilder dataInputsFormatter, PFSERVICE_TO_DM_MAPPING_TABLE table) { @@ -747,7 +824,7 @@ public class PerformFishAnnualAnalyticsController { break; case DEA_CHART: break; - case PERFORMFISH_SYNOPTICTABLE_BATCH: + case PERFORMFISH_SYNOPTIC_TABLE_FARM: cssTableStyle = "synoptictable"; break; } diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/annualcontrollers/PerformFishAnnualAnalyticsViewController.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/annualcontrollers/PerformFishAnnualAnalyticsViewController.java index efd790c..c41f9b6 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/annualcontrollers/PerformFishAnnualAnalyticsViewController.java +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/annualcontrollers/PerformFishAnnualAnalyticsViewController.java @@ -208,6 +208,14 @@ public class PerformFishAnnualAnalyticsViewController { GWT.log("Found the passed batch type: "+populationType); selectedPopulation = result.get(0).getPopulation(); form.addPopulationTypes(populationName, Arrays.asList(populationType), selectedPopulation); + + if (populationType.getName().equalsIgnoreCase(PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_AGGREGATED_CLOSED_BATCHES.name())) { + visibleSynopticTable(true); + enableSynopticTable(true); + } else { + visibleSynopticTable(false); + enableSynopticTable(false); + } } } }else{ @@ -225,6 +233,7 @@ public class PerformFishAnnualAnalyticsViewController { }); } + /** @@ -458,5 +467,26 @@ public class PerformFishAnnualAnalyticsViewController { this.reloadPerformFishServiceData = reloadPerformFishServiceData; } + + /** + * Enable synoptic table. + * + * @param b the b + */ + public void enableSynopticTable(boolean b) { + + recapPage.activeSynopticTable(b); + } + + /** + * Visible synoptic table. + * + * @param b the b + */ + public void visibleSynopticTable(boolean b){ + + recapPage.setVisibleLoadSynopsisPanel(b); + + } } diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/controllers/PerformFishAnalyticsController.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/controllers/PerformFishAnalyticsController.java index 39a3f08..cb65f4b 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/controllers/PerformFishAnalyticsController.java +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/controllers/PerformFishAnalyticsController.java @@ -140,10 +140,10 @@ public class PerformFishAnalyticsController { PopulationType opt = selectedPopulationTypeEvent.getSelectedPopulationType(); viewController.setRootPopulationTypeForKPIs(selectedPopulationTypeEvent.getSelectedPopulationType()); - if (opt.getName().equalsIgnoreCase(PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_INDIVIDUAL_CLOSED_BATCHES.name())) { + if (opt.getName().equalsIgnoreCase(PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_INDIVIDUAL_CLOSED_BATCHES.name()) || opt.getName().equalsIgnoreCase(PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_INDIVIDUAL.name())) { viewController.visibleSynopticTable(true); } else { - viewController.visibleSynopticTable(true); + viewController.visibleSynopticTable(false); } } }); @@ -783,7 +783,4 @@ public class PerformFishAnalyticsController { } } - - - } diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/RecapSubmitPage.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/RecapSubmitPage.java index feb92a4..a5c78fd 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/RecapSubmitPage.java +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/RecapSubmitPage.java @@ -152,7 +152,8 @@ public class RecapSubmitPage extends Composite { @Override public void onClick(ClickEvent event) { // boolean isValidForm = vivalidatePerformFishInputFields(); - PerformFishAnalyticsController.eventBus.fireEvent(new LoadSynopticTableEvent(annualAnalysis)); + theEventBus.fireEvent(new LoadSynopticTableEvent(annualAnalysis)); + } }); diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/RecapSubmitPage.ui.xml b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/RecapSubmitPage.ui.xml index bd518b0..d8a8d3b 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/RecapSubmitPage.ui.xml +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/RecapSubmitPage.ui.xml @@ -42,7 +42,7 @@ Synopsis Load Synoptic Table + enabled="false" addStyleNames="the_margin_top" name="PERFORMFISH_SYNOPTICTABLE_BATCH">Generate Synoptic Table diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/server/PerformFishAnalyticsServiceImpl.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/server/PerformFishAnalyticsServiceImpl.java index c5b5534..da8dfe5 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/server/PerformFishAnalyticsServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/server/PerformFishAnalyticsServiceImpl.java @@ -501,6 +501,26 @@ public class PerformFishAnalyticsServiceImpl extends RemoteServiceServlet dmRequestParameters.putAll(mapParameters); return callTheDataMiner(dmRequestParameters); } + + + @Override + public DataMinerResponse callDMServiceToLoadSynopticAnnualTable(PerformFishResponse thePerformFishResponse, + Map> mapParameters) throws Exception { + log.info("Validating Perform-Fish service response..."); + + log.info("Calling the DM service with client parameters: "+mapParameters.toString()); + //PortalContextInfo pContext = ContextUtil.getPortalContext(this.getThreadLocalRequest()); + Map> dmRequestParameters = new HashMap>(); + dmRequestParameters.put("request", Arrays.asList("Execute")); + dmRequestParameters.put("service", Arrays.asList("WPS")); + dmRequestParameters.put("Version", Arrays.asList("1.0.0")); + //dmRequestParameters.put("gcube-token", Arrays.asList(pContext.getUserToken())); + dmRequestParameters.put("lang", Arrays.asList("en-US")); + dmRequestParameters.put("Identifier", Arrays.asList("org.gcube.dataanalysis.wps.statisticalmanager.synchserver.mappedclasses.transducerers.PERFORMFISH_SYNOPTIC_TABLE_FARM")); + dmRequestParameters.putAll(mapParameters); + return callTheDataMiner(dmRequestParameters); + } + /**