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 43a16d7..6557036 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 @@ -7,8 +7,9 @@ package org.gcube.portlets.user.performfishanalytics.client; /** * The Enum DataMinerAlgorithms. * - * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it - * Feb 8, 2019 + * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) + * + * Jul 12, 2019 */ public enum DataMinerAlgorithms { @@ -17,7 +18,8 @@ public enum DataMinerAlgorithms { SPEEDOMETER("SPEEDOMETER","SPEEDOMETER"), BOXPLOT("BOXPLOT","BOXPLOT"), DEA_ANALYSIS("DEA_ANALYSIS", "DEA_ANALYSIS"), - CORRELATION("CORRELATION", "CORRELATION"); + CORRELATION("CORRELATION", "CORRELATION"), + PERFORMFISH_SYNOPTICTABLE_BATCH("PERFORMFISH_SYNOPTICTABLE_BATCH", "PERFORMFISH_SYNOPTICTABLE_BATCH"); 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 c76e849..5600947 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 @@ -30,7 +30,13 @@ public class PerformFishAnalyticsConstant { public static final String DM_INPUT_KPI_PARAM = "inputKPI"; public static final String DM_OUTPUT_KPI_PARAM = "outputKPI"; public static final int CSV_BATCHES_TABLE_MINIMUM_SIZE = 4; - + + //SYNOPTIC TABLE + 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_VALUE_ALL = "ALL"; + public static final String PERFORM_FISH_AREA_PARAM = "area"; public static final String PERFORM_FISH_QUARTER_PARAM = "quarter"; public static final String PERFORM_FISH_PERIOD_PARAM = "period"; 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 7dfe00e..ac7aa71 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 @@ -100,4 +100,7 @@ public interface PerformFishAnalyticsService extends RemoteService { DataMinerResponse callingDataMinerPerformFishAnnualCorrelationAnalysis(PerformFishResponse peformFishReponse, Map> mapParameters) throws Exception; + + DataMinerResponse callDMServiceToLoadSynopticTable(PerformFishResponse performFishResponse, + 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 31aef90..52c64dc 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 @@ -85,4 +85,8 @@ public interface PerformFishAnalyticsServiceAsync void callingDataMinerPerformFishAnnualCorrelationAnalysis(PerformFishResponse peformFishReponse, Map> mapParameters, AsyncCallback callback); + + + void callDMServiceToLoadSynopticTable(PerformFishResponse performFishResponse, + Map> mapParameters, AsyncCallback asyncCallback); } 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 0e38893..efd790c 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 @@ -122,7 +122,7 @@ public class PerformFishAnnualAnalyticsViewController { headerPage.showLoading(true, "Loading Data...."); westPanel = new VerticalPanel(); estPanel = new VerticalPanel(); - recapPage = new RecapSubmitPage(PerformFishAnnualAnalyticsController.eventBus); + recapPage = new RecapSubmitPage(PerformFishAnnualAnalyticsController.eventBus, true); tabPanel = new TabPanelView(); headerPage.add(new PortletTitle("PerformFISH Statistical Analysis")); 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 aba6b69..799871c 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 @@ -21,6 +21,8 @@ import org.gcube.portlets.user.performfishanalytics.client.event.LoadBatchesEven import org.gcube.portlets.user.performfishanalytics.client.event.LoadBatchesEventHandler; 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; @@ -35,6 +37,7 @@ import org.gcube.portlets.user.performfishanalytics.client.viewbinder.ShowResult import org.gcube.portlets.user.performfishanalytics.client.viewbinder.SubmitRequestPanel; import org.gcube.portlets.user.performfishanalytics.shared.KPI; import org.gcube.portlets.user.performfishanalytics.shared.OutputFile; +import org.gcube.portlets.user.performfishanalytics.shared.PopulationType; import org.gcube.portlets.user.performfishanalytics.shared.csv.CSVFile; import org.gcube.portlets.user.performfishanalytics.shared.dataminer.DataMinerResponse; import org.gcube.portlets.user.performfishanalytics.shared.performfishservice.PerformFishInitParameter; @@ -53,6 +56,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; import com.google.gwt.user.client.ui.VerticalPanel; @@ -133,7 +137,14 @@ public class PerformFishAnalyticsController { public void onSelectedPopulationType( SelectedPopulationTypeEvent selectedPopulationTypeEvent) { + PopulationType opt = selectedPopulationTypeEvent.getSelectedPopulationType(); viewController.setRootPopulationTypeForKPIs(selectedPopulationTypeEvent.getSelectedPopulationType()); + + if (opt.getName().equalsIgnoreCase(PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_INDIVIDUAL_CLOSED_BATCHES.name())) { + viewController.visibleSynopticTable(true); + } else { + viewController.visibleSynopticTable(true); + } } }); @@ -225,7 +236,7 @@ public class PerformFishAnalyticsController { //viewController.resetBatchIdStatus(); viewController.setBatchIdStatus(ControlGroupType.INFO); viewController.enableLoadBatches(true); - viewController.enableSynopticTable(true); + viewController.enableSynopticTable(false); viewController.showAlertForLoadBatches("Please load your batches corresponding to the selected options, by pressing the 'Load Batches' button", AlertType.INFO, false); viewController.enableAllAlgorithmsForSubmit(false); @@ -243,10 +254,14 @@ public class PerformFishAnalyticsController { public void onAddedBatchId(AddedBatchIdEvent checkValidBatchIdEvent) { boolean isBatchIdValid = viewController.validateBatchIdSelection(); - if(isBatchIdValid) + if(isBatchIdValid) { viewController.enableAllAlgorithmsForSubmit(true); - else + viewController.enableSynopticTable(true); + } + else { viewController.enableAllAlgorithmsForSubmit(false); + viewController.enableSynopticTable(false); + } //viewController.resyncSelectedKPIs(); } @@ -299,6 +314,80 @@ public class PerformFishAnalyticsController { return; } }); + + eventBus.addHandler(LoadSynopticTableEvent.TYPE, new LoadSynopticTableEventHandler() { + + @Override + public void onLoadSynopticTable(LoadSynopticTableEvent loadSynopticTableEvent) { + + boolean isValidBatchId = viewController.validateBatchIdSelection(); + + if(isValidBatchId) { + callAlgorithmSynopticTableBatch(viewController.getPerformFishResponse(), viewController.getRequestMapParameters()); + } + + } + }); + + } + + private void callAlgorithmSynopticTableBatch(final PerformFishResponse performFishResponse, final Map> performFishRequestParameters) { + GWT.log("Read perform fish response: "+performFishResponse); + + String batchTableURL = performFishResponse.getMapParameters().get(PerformFishAnalyticsConstant.BATCHES_TABLE); + + if(batchTableURL==null || batchTableURL.isEmpty()) + Window.alert("Something seems wrong. No batches tables matching with parameter "+PerformFishAnalyticsConstant.BATCHES_TABLE+" returned from service"); + + final Map> mapParameters = new HashMap>(); + + StringBuilder dataInputsFormatter = new StringBuilder(); + dataInputsFormatter.append(PerformFishAnalyticsConstant.DM_INPUT_TABLE+"="+ batchTableURL +";"); + dataInputsFormatter.append(PerformFishAnalyticsConstant.DM_ZONE_LABELS+"="+PerformFishAnalyticsConstant.DM_VALUE_ALL+";"); + dataInputsFormatter.append(PerformFishAnalyticsConstant.DM_QUARTER_LABELS+"="+PerformFishAnalyticsConstant.DM_VALUE_ALL+";"); + String dataInParameters = dataInputsFormatter.toString(); + + mapParameters.put(PerformFishAnalyticsConstant.DATA_INPUTS, Arrays.asList(dataInParameters)); + + GWT.log("Calling DM service with client input parameters: "+mapParameters); + + final DataMinerAlgorithms chartType = DataMinerAlgorithms.PERFORMFISH_SYNOPTICTABLE_BATCH; + + final SubmitRequestPanel submitRequestPanel = new SubmitRequestPanel("", 1); + //submitRequestPanel.getElement().addClassName("ext-horizontal-panel"); + String tabTitle = chartType.getName().substring(0,1).toUpperCase()+chartType.getName().toLowerCase().substring(1,chartType.getName().length()); //CAMEL CASE + final Tab tab = viewController.createTab(submitRequestPanel, tabTitle+" #"+(viewController.currentNumberOfTab()+1)); + final HTMLPanel panelContainer = submitRequestPanel.getContainerPanel(); + + final LoaderIcon loaderIcon = new LoaderIcon("Submitting request to "+DataMinerAlgorithms.PERFORMFISH_SYNOPTICTABLE_BATCH.getName()+"..."); + 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().callDMServiceToLoadSynopticTable(performFishResponse, 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, chartType, null, null, null, panelContainer, false); + } + + @Override + public void onFailure(Throwable caught) { + loaderIcon.setVisible(false); + checkTabSpinner(submitRequestPanel, tab); + displayOutputFilesAsStaticEntities(null, chartType, null, null, null, panelContainer, true); + + } + }); } @@ -622,6 +711,8 @@ public class PerformFishAnalyticsController { break; case DEA_CHART: break; + case PERFORMFISH_SYNOPTICTABLE_BATCH: + break; } ShowResult showResult = new ShowResult(title); @@ -665,6 +756,8 @@ public class PerformFishAnalyticsController { break; case DEA_CHART: break; + case PERFORMFISH_SYNOPTICTABLE_BATCH: + break; } ShowResult showResult = new ShowResult(title); diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/controllers/PerformFishAnalyticsViewController.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/controllers/PerformFishAnalyticsViewController.java index 521a944..dd66497 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/controllers/PerformFishAnalyticsViewController.java +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/controllers/PerformFishAnalyticsViewController.java @@ -128,7 +128,7 @@ public class PerformFishAnalyticsViewController { headerPage.showLoading(true, "Loading Data...."); westPanel = new VerticalPanel(); estPanel = new VerticalPanel(); - recapPage = new RecapSubmitPage(PerformFishAnalyticsController.eventBus); + recapPage = new RecapSubmitPage(PerformFishAnalyticsController.eventBus, false); tabPanel = new TabPanelView(); headerPage.add(new PortletTitle("PerformFISH Statistical Analysis")); @@ -576,16 +576,28 @@ public class PerformFishAnalyticsViewController { * @param closable the closable */ public void showAlertForLoadBatches(String msg, AlertType type, boolean closable){ + batchIDAndListKPI.showAlert(msg, type, closable); } - + /** * Enable synoptic table. * * @param b the b */ public void enableSynopticTable(boolean b) { - form.setEnableSynopticTable(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/event/LoadPopulationTypeEvent.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/event/LoadPopulationTypeEvent.java index dd8fa55..c2deec1 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/event/LoadPopulationTypeEvent.java +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/event/LoadPopulationTypeEvent.java @@ -4,11 +4,13 @@ import org.gcube.portlets.user.performfishanalytics.shared.performfishservice.Pe import com.google.gwt.event.shared.GwtEvent; + /** * The Class LoadPopulationTypeEvent. * * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) - * Jan 22, 2019 + * + * Jul 12, 2019 */ public class LoadPopulationTypeEvent extends GwtEvent { public static Type TYPE = new Type(); @@ -19,7 +21,7 @@ public class LoadPopulationTypeEvent extends GwtEvent { + public static Type TYPE = new Type(); + private boolean annualAnalysis; + + /** + * Instantiates a new load batches event. + */ + public LoadSynopticTableEvent(boolean annualAnalysis) { + this.annualAnalysis = annualAnalysis; + } + + /* (non-Javadoc) + * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType() + */ + @Override + public Type getAssociatedType() { + return TYPE; + } + + /* (non-Javadoc) + * @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler) + */ + @Override + protected void dispatch(LoadSynopticTableEventHandler handler) { + handler.onLoadSynopticTable(this); + } + + public boolean isAnnualAnalysis() { + return annualAnalysis; + } + +} diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/event/LoadSynopticTableEventHandler.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/event/LoadSynopticTableEventHandler.java new file mode 100644 index 0000000..69c7cbc --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/event/LoadSynopticTableEventHandler.java @@ -0,0 +1,22 @@ +package org.gcube.portlets.user.performfishanalytics.client.event; + +import com.google.gwt.event.shared.EventHandler; + + +/** + * The Interface LoadSynopticTableEventHandler. + * + * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) + * + * Jul 12, 2019 + */ +public interface LoadSynopticTableEventHandler extends EventHandler { + + + /** + * On load synoptic table. + * + * @param loadSynopticTableEvent the load synoptic table event + */ + void onLoadSynopticTable(LoadSynopticTableEvent loadSynopticTableEvent); +} \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/PerformFishAnalitycsFormView.java b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/PerformFishAnalitycsFormView.java index ea650d5..37d7fa2 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/PerformFishAnalitycsFormView.java +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/PerformFishAnalitycsFormView.java @@ -18,7 +18,6 @@ import org.gcube.portlets.user.performfishanalytics.shared.Quarter; import org.gcube.portlets.user.performfishanalytics.shared.Species; import com.github.gwtbootstrap.client.ui.Alert; -import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.CheckBox; import com.github.gwtbootstrap.client.ui.ControlGroup; import com.github.gwtbootstrap.client.ui.ListBox; @@ -94,8 +93,8 @@ public class PerformFishAnalitycsFormView extends Composite { CheckBox uib_check_all_area; @UiField CheckBox uib_check_all_quarter; - @UiField - Button uib_button_load_synoptic_table; +// @UiField +// Button uib_button_load_synoptic_table; // @UiField // Fieldset fieldset_add_catalogue_bean; @@ -136,11 +135,11 @@ public class PerformFishAnalitycsFormView extends Composite { GWT.log("Selected population type: " + populatioTypeSelected); PopulationType opt = mapPopulationType.get(populatioTypeSelected); - if(opt.getName().equalsIgnoreCase("GROW_OUT_INDIVIDUAL_CLOSED_BATCHES")) { - uib_button_load_synoptic_table.setVisible(true); - }else { - uib_button_load_synoptic_table.setVisible(false); - } +// if(opt.getName().equalsIgnoreCase("GROW_OUT_INDIVIDUAL_CLOSED_BATCHES")) { +// uib_button_load_synoptic_table.setVisible(true); +// }else { +// uib_button_load_synoptic_table.setVisible(false); +// } PerformFishAnalyticsController.eventBus.fireEvent(new SelectedPopulationTypeEvent(opt)); fillSpecies(opt.getListSpecies()); @@ -220,25 +219,25 @@ public class PerformFishAnalitycsFormView extends Composite { } }); - uib_button_load_synoptic_table.addClickHandler(new ClickHandler() { - - @Override - public void onClick(ClickEvent event) { -// boolean isValidForm = vivalidatePerformFishInputFields(); - //PerformFishAnalyticsController.eventBus.fireEvent(new PerformFishFieldFormChangedEvent(uib_button_load_synoptic_table)); - } - }); +// uib_button_load_synoptic_table.addClickHandler(new ClickHandler() { +// +// @Override +// public void onClick(ClickEvent event) { +//// boolean isValidForm = vivalidatePerformFishInputFields(); +// PerformFishAnalyticsController.eventBus.fireEvent(new LoadSynopticTableEvent(false)); +// } +// }); } - /** - * Sets the enable synoptic table. - * - * @param b the new enable synoptic table - */ - public void setEnableSynopticTable(boolean b) { - uib_button_load_synoptic_table.setEnabled(b); - } +// /** +// * Sets the enable synoptic table. +// * +// * @param b the new enable synoptic table +// */ +// public void setEnableSynopticTable(boolean b) { +// uib_button_load_synoptic_table.setEnabled(b); +// } /** diff --git a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/PerformFishAnalitycsFormView.ui.xml b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/PerformFishAnalitycsFormView.ui.xml index 94e6979..38dfe2e 100644 --- a/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/PerformFishAnalitycsFormView.ui.xml +++ b/src/main/java/org/gcube/portlets/user/performfishanalytics/client/viewbinder/PerformFishAnalitycsFormView.ui.xml @@ -100,13 +100,6 @@ - - - Synoptic Table - - - 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 7b4ccfb..feb92a4 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 @@ -9,6 +9,8 @@ import java.util.List; import java.util.Set; import org.gcube.portlets.user.performfishanalytics.client.DataMinerAlgorithms; +import org.gcube.portlets.user.performfishanalytics.client.controllers.PerformFishAnalyticsController; +import org.gcube.portlets.user.performfishanalytics.client.event.LoadSynopticTableEvent; import org.gcube.portlets.user.performfishanalytics.client.event.SubmitRequestEvent; import org.gcube.portlets.user.performfishanalytics.shared.KPI; @@ -55,12 +57,20 @@ public class RecapSubmitPage extends Composite { @UiField VerticalPanel errorPanelSubmit; + + @UiField + VerticalPanel synopsisPanel; + + @UiField + Button uib_button_load_synoptic_table; private HashMap mapSelected = new HashMap(); private HashMap mapLabel = new HashMap(); private HandlerManager theEventBus; + private boolean annualAnalysis; + /** * The Interface RecapSubmitPageUiBinder. * @@ -80,9 +90,12 @@ public class RecapSubmitPage extends Composite { * * Note that depending on the widget that is used, it may be necessary to * implement HasHTML instead of HasText. + * + * @param eventBus the event bus + * @param annualAnalysis the annual analysis */ - public RecapSubmitPage(HandlerManager eventBus) { - + public RecapSubmitPage(HandlerManager eventBus, final boolean annualAnalysis) { + this.annualAnalysis = annualAnalysis; initWidget(uiBinder.createAndBindUi(this)); this.theEventBus = eventBus; @@ -133,8 +146,36 @@ public class RecapSubmitPage extends Composite { theEventBus.fireEvent(new SubmitRequestEvent(chartType)); } }); + + uib_button_load_synoptic_table.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { +// boolean isValidForm = vivalidatePerformFishInputFields(); + PerformFishAnalyticsController.eventBus.fireEvent(new LoadSynopticTableEvent(annualAnalysis)); + } + }); } + + + /** + * Sets the visible load synopsis panel. + * + * @param b the new visible load synopsis panel + */ + public void setVisibleLoadSynopsisPanel(boolean b) { + synopsisPanel.setVisible(b); + } + + /** + * Sets the enable synoptic table. + * + * @param b the new enable synoptic table + */ + public void activeSynopticTable(boolean b) { + uib_button_load_synoptic_table.setEnabled(b); + } /** @@ -295,8 +336,14 @@ public class RecapSubmitPage extends Composite { msg.setType(AlertType.ERROR); errorPanelSubmit.add(msg); } - - - + + /** + * Checks if is annual analysis. + * + * @return true, if is annual analysis + */ + public boolean isAnnualAnalysis() { + return 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 07e10a5..bd518b0 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 @@ -1,29 +1,49 @@ + xmlns:g="urn:import:com.google.gwt.user.client.ui" + xmlns:b="urn:import:com.github.gwtbootstrap.client.ui"> /* Add CSS here. See the GWT docs on UI Binder for more details */ .thetitle { font-weight: bold; font-size: 18px; } + .theMarginTop50 { margin-top: 50px; } - + Selected KPIs - - - - + + + + + + + Synopsis + + Load Synoptic Table + + \ No newline at end of file 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 0cab0cb..c5b5534 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 @@ -469,6 +469,38 @@ public class PerformFishAnalyticsServiceImpl extends RemoteServiceServlet return callTheDataMinerPerformFishCorrelationAnalysis(peformFishReponse,dmRequestParameters); } + + @Override + public DataMinerResponse callDMServiceToLoadSynopticTable(PerformFishResponse performFishResponse, + Map> mapParameters) throws Exception{ + + log.info("Validating Perform-Fish service response..."); + + String URLToBatchesTable = performFishResponse.getMapParameters().get(PerformFishAnalyticsConstant.BATCHES_TABLE); + + if(URLToBatchesTable==null || URLToBatchesTable.isEmpty()) + throw new Exception("Something seems "+PerformFishAnalyticsConstant.BATCHES_TABLE+ " is null or emty"); + + //Checking that the perform-fish PerformFishAnalyticsConstant.BATCHES_TABLE has at least 1 row +// CSVFile csvFile = readCSVFile(URLToBatchesTable); +// log.info("CSVFile read from {} - {}", URLToBatchesTable, csvFile); +// if(csvFile==null || csvFile.getValueRows() == null || csvFile.getValueRows().size()> 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_SYNOPTICTABLE_BATCH")); + dmRequestParameters.putAll(mapParameters); + return callTheDataMiner(dmRequestParameters); + } /** @@ -515,7 +547,7 @@ public class PerformFishAnalyticsServiceImpl extends RemoteServiceServlet List listOut = dmResponse.getListDMOutputData(); for (DataMinerOutputData dataMinerOutputData : listOut) { //I'm using this specific output data of DM - if(dataMinerOutputData.getFileDescription().contains("outputCharts")){ + if(dataMinerOutputData.getFileDescription().toLowerCase().contains("outputcharts")){ log.info("The output: "+dataMinerOutputData.getFileDescription()+ " with: "+dataMinerOutputData.getMimeType()+" is the candidate to unzip"); toDMOutputData = dataMinerOutputData; break; @@ -523,7 +555,7 @@ public class PerformFishAnalyticsServiceImpl extends RemoteServiceServlet } if(toDMOutputData==null || toDMOutputData.getPublicURL()==null) - throw new Exception("The response returned by DM service does not contain a file to unzip with name: 'outputCharts'. Please report this issue at www.d4science.org/contact-us"); + throw new Exception("The response returned by DM service does not contain a file to unzip with name: 'outputcharts'. Please report this issue at www.d4science.org/contact-us"); String theZipFileURL = toDMOutputData.getPublicURL(); log.info("I'm using the file: "+theZipFileURL); @@ -625,7 +657,13 @@ public class PerformFishAnalyticsServiceImpl extends RemoteServiceServlet List listOut = dmResponse.getListDMOutputData(); for (DataMinerOutputData dataMinerOutputData : listOut) { //I'm using this specific output data of DM - if(dataMinerOutputData.getFileDescription().contains("outputCharts")){ + if(dataMinerOutputData.getFileDescription().toLowerCase().contains("outputcharts")){ + log.info("The output: "+dataMinerOutputData.getFileDescription()+ " with: "+dataMinerOutputData.getMimeType()+" is the candidate to unzip"); + toDMOutputData = dataMinerOutputData; + break; + } + + if(dataMinerOutputData.getFileDescription().toLowerCase().contains("outputfile")){ log.info("The output: "+dataMinerOutputData.getFileDescription()+ " with: "+dataMinerOutputData.getMimeType()+" is the candidate to unzip"); toDMOutputData = dataMinerOutputData; break; @@ -633,7 +671,7 @@ public class PerformFishAnalyticsServiceImpl extends RemoteServiceServlet } if(toDMOutputData==null || toDMOutputData.getPublicURL()==null) - throw new Exception("The response returned by DM service does not contain a file to unzip with name: 'outputCharts'. Please report this issue at www.d4science.org/contact-us"); + throw new Exception("The response returned by DM service does not contain a file to unzip with name: 'outputcharts' or 'outputfile'. Please report this issue at www.d4science.org/contact-us"); String theZipFileURL = toDMOutputData.getPublicURL(); log.info("I'm using the file: "+theZipFileURL); @@ -965,4 +1003,5 @@ public class PerformFishAnalyticsServiceImpl extends RemoteServiceServlet } } } + }